SAR是系统活动报告(System Activity Report)英文单词的首字母缩写。正如它的名字所表示的那样,SAR是一个在Unix和Linux操作系统中用来收集、报告和保存CPU、内存、输入输出端口使用情况的命令。SAR命令可以动态产生报告,也可以把报告保存在日志文件中。
在本文中,我们将讨论在 7和RHEL 7系统中使用SAR的不同案例。如果你没有安装该软件包,可以使用下面一条命令来安装它。
[root@localhost ~]# yum install sysstat
启动sadc(system activity data collector)服务(sysstat),这样报告就会被写入到日志文件“/var/log/sa/saDD”中并且已经存在的文档将会被归档。DD表示当前日期。
[root@localhost ~]# systemctl start sysstat
[root@localhost ~]# systemctl enable sysstat
它每隔10分钟收集一次数据并且每天形成一份报告。下图中的crontab文件负责收集和生成报告。
下图中的是SysStat的Config文件。(sar命令)
案例1:每两秒钟动态生成5次CPU的使用情况
[root@localhost ~]# sar 2 5
Linux 3.10.0-123.el7.x86_64 (localhost.localdomain) Monday 26 October 2015 _x86_64_ (2 CPU)
01:43:55 EDT CPU %user %nice %system %iowait %steal %idle
01:43:57 EDT all 0.00 0.00 0.25 0.00 0.00 99.75
01:43:59 EDT all 0.00 0.00 0.00 0.00 0.00 100.00
01:44:01 EDT all 0.00 0.00 0.25 0.00 0.00 99.75
01:44:03 EDT all 0.00 0.00 0.25 0.25 0.00 99.50
01:44:05 EDT all 0.00 0.00 0.00 0.00 0.00 100.00
Average: all 0.00 0.00 0.15 0.05 0.00 99.80
[root@localhost ~]#
如果 %I/Owait 这一项是一个超过0的长时间值,那么我们就要考虑是否在输入输出系统方面存在瓶颈(比如硬盘或者网络)。
案例2:使用-o选项保存sar命令的输出结果:
[root@localhost ~]# sar 2 5 -o /tmp/data > /dev/null 2>&1
[root@localhost ~]#
使用“sar -f ”输出结果:
[root@localhost ~]# sar -f /tmp/data
案例3:使用-r选项生成内存的使用情况报告
-r选项在sar命令中被用以生成内存的使用报告。
[root@localhost ~]# sar -r 2 5
kbcommit和%commit列的数据包括了内存和交换区使用量的总和。
案例4:用-B选项生成分页统计报告
[root@localhost ~]# sar -B 2 5
报告里,majflts/s主要显示从硬盘交换区载入物理内存时的异常,如果这个值变高,那么我们可以说系统目前仅仅使用了内存(RAM)。
%vmeff 表示每秒扫描的页面数,如果说当它的值是100%时是正常情况,它是30%以下的时候就可以认为虚拟内存存在一些问题。0值表示在那个时候没有任何一个页面被扫描。
案例:5 使用-d选项生成块设备使用情况报告
-d 选项在sar命令中被用以显示块设备的状态报告。在 -d 后面加上 -p (pretty-print)选项可以增强 dev 列的可读性,如下图所示:
[root@localhost ~]# sar -d -p 2 4
案例6:用-n生成网络使用情况报告
-n选项在sar命令中被用来生成网络使用情况的统计报告。下面是语法规则:
# sar -n {keyword} or {ALL}
[root@localhost ~]# sar -n ALL
案例7:用-f读sar日志文件
我们前面已经讨论了sar的日志文件是保存在“/var/log/sa/saDD”里的。使用-f选项可以查看日志文件。
[root@localhost ~]# sar -r -f /var/log/sa/sa26
本文永久更新链接地址: