用 sar 命令监控系统状态
sar 命令很强大,它可以监控系统几乎所有资源状态,比如平均负载、网卡流量、磁盘状态、内存使用等。与其他系统状态监控工具不同,它可以打印历史信息,可以显示当天从零点开始到当前时刻的系统状态信息。如果你的系统没有安装这个命令,请使用 yum install -y sysstat 安装。初次使用 sar 命令会报错,那是因为 sar 工具还没有生成相应的数据库文件(无需实时监控,因为不用去查询那个库文件)它的数据库文件在 /var/log/sa 目录下。因为这个命令太复杂,所以只介绍以下两个方面。
安装 sar 包
[root@evan-01 ~]# sar
-bash: sar: command not found
[root@evan-01 ~]# yum install -y sysstat
初次使用 sar
[root@evan-01 ~]# sar
Cannot open /var/log/sa/sa20: No such file or directory
[root@evan-01 ~]#
没有加任何的选项,它就会到生成的历史文件查找。初次使用 sar 命令会报错,那是因为 sar 工具还没有生成相应的数据库文件(无需实时监控,因为不用去查询那个库文件)它的数据库文件在 /var/log/sa 目录下,每隔10分钟会生成一下,因为我们刚安装的 sar 所以还没有,不过不用担心,不影响我们加上其他选项使用
查看网卡流量 sar -n DEV
[root@evan-01 ~]# sar -n DEV 1 5
Linux 3.10.0-693.el7.x86_64 (evan-01) 11/20/2019 _x86_64_ (1 CPU)
11:39:50 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
11:39:51 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:39:51 AM ens33 1.01 1.01 0.06 0.17 0.00 0.00 0.00
11:39:51 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
11:39:52 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:39:52 AM ens33 0.99 0.99 0.06 0.37 0.00 0.00 0.00
11:39:52 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
11:39:53 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:39:53 AM ens33 0.99 0.99 0.06 0.37 0.00 0.00 0.00
11:39:53 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
11:39:54 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:39:54 AM ens33 0.99 0.99 0.06 0.37 0.00 0.00 0.00
11:39:54 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
11:39:55 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:39:55 AM ens33 1.00 1.00 0.06 0.37 0.00 0.00 0.00
Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: ens33 1.00 1.00 0.06 0.33 0.00 0.00 0.00
[root@evan-01 ~]#
这个命令会把当天记录的网卡信息打印出来,每隔10分钟记录一次。IFACE这一列表示设备名称,rxpck/s 这一列表示每秒进入收取的包的数量,txpck/s 这一列表示每秒发送出去的包的数量,rxkB/s这一列表示每秒收取的数据量(单位为 KB),txkB/s 这一列表示每秒发送的数据量(后面几列不需要关注)
如果有一天服务器丢包非常严重,那么你就应该查一下网卡流量是否异常了。如果 rxpck/s 那一列的数值大于 4000,或者 rxkB/s 那一列的数值大于 5000000,很有可能是被攻击了。正常的服务器网卡流量不会那么高,除非是你自己在复制数据
再来执行下 sar
[root@evan-01 ~]# sar
Linux 3.10.0-693.el7.x86_64 (evan-01) 11/20/2019 _x86_64_ (1 CPU)
[root@evan-01 ~]# ls /var/log/sa/
sa20
[root@evan-01 ~]#
已经不再有报错了,查看下发现 /var/log/sa/ 目录下已经有了文件了,自动生成的,每隔10分钟抓一次
查看某一天的网卡流量历史
-f 选项查看某一天的网卡流量历史,后面跟文件名。sar 的库文件一定在 /var/log/sa/目录下。包的名字很有意思,后面数字代表日期
[root@evan-01 ~]# sar -n DEV -f /var/log/sa/sa20
Linux 3.10.0-693.el7.x86_64 (evan-01) 11/20/2019 _x86_64_ (1 CPU)
[root@evan-01 ~]#
现在还没数据,所以没展示出来。
查看历史负载 sar -q
[root@evan-01 ~]# sar -q
Linux 3.10.0-693.el7.x86_64 (evan-01) 11/20/2019 _x86_64_ (1 CPU)
11:40:01 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
11:50:01 AM 1 121 0.00 0.01 0.05 0
12:00:01 PM 1 122 0.02 0.02 0.05 0
12:10:01 PM 1 122 0.01 0.02 0.05 0
12:20:01 PM 1 122 0.07 0.04 0.05 0
12:30:01 PM 1 123 0.00 0.01 0.05 0
12:40:01 PM 1 122 0.00 0.01 0.05 0
12:50:01 PM 1 122 0.00 0.01 0.05 0
01:00:01 PM 1 122 0.01 0.03 0.05 0
01:10:02 PM 1 121 0.00 0.01 0.05 0
01:20:01 PM 1 121 0.00 0.01 0.05 0
01:30:01 PM 1 122 0.00 0.01 0.05 0
01:40:01 PM 1 121 0.02 0.02 0.05 0
01:50:01 PM 1 121 0.00 0.01 0.05 0
02:00:01 PM 1 121 0.00 0.01 0.05 0
Average: 1 122 0.01 0.02 0.05 0
[root@evan-01 ~]#
这个命令有助于我们查看服务器在过去某个时间的负载情况
查看磁盘负载 sar -b
[root@evan-01 ~]# sar -b
Linux 3.10.0-693.el7.x86_64 (evan-01) 11/20/2019 _x86_64_ (1 CPU)
11:40:01 AM tps rtps wtps bread/s bwrtn/s
11:50:01 AM 0.08 0.00 0.08 0.00 1.12
12:00:01 PM 0.05 0.00 0.05 0.00 0.42
12:10:01 PM 0.09 0.02 0.08 0.31 1.07
12:20:01 PM 0.03 0.00 0.03 0.00 0.41
12:30:01 PM 0.92 0.37 0.55 10.83 13.99
12:40:01 PM 0.03 0.00 0.03 0.00 0.37
12:50:01 PM 0.06 0.00 0.06 0.00 0.87
01:00:01 PM 0.05 0.00 0.05 0.00 0.48
01:10:02 PM 0.10 0.00 0.10 0.00 1.34
01:20:01 PM 0.02 0.00 0.02 0.00 0.29
01:30:01 PM 0.07 0.00 0.07 0.00 0.86
01:40:01 PM 0.03 0.00 0.03 0.00 0.33
01:50:01 PM 0.02 0.00 0.02 0.00 0.29
02:00:01 PM 0.06 0.00 0.06 0.00 0.62
02:10:01 PM 0.06 0.00 0.06 0.00 0.51
Average: 0.11 0.03 0.08 0.74 1.53
[root@evan-01 ~]#
查看磁盘的读和写