SAR是系统活动报告(System Activity Report)英文单词的首字母缩写。正如它的名字所表示的那样,SAR是一个在Unix和 Linux 操作系统中用来收集、报告和保存 CPU 、 内存 、 输入输出端口 使用情况的命令。SAR命令可以动态产生报告,也可以把报告保存在日志文件中。
在本文中,我们将讨论在CentOS 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命令)
[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的长时间值,那么我们就要考虑是否在输入输出系统方面存在瓶颈(比如硬盘或者网络)。
[root@localhost ~]# sar 2 5 -o /tmp/data > /dev/null 2>&1 [root@localhost ~]#
使用“sar -f ”输出结果:
[root@localhost ~]# sar -f /tmp/data
-r选项在sar命令中被用以生成内存的使用报告。
[root@localhost ~]# sar -r 2 5
kbcommit和%commit列的数据包括了内存和交换区使用量的总和。
[root@localhost ~]# sar -B 2 5
报告里, majflts/s 主要显示从硬盘交换区载入物理内存时的异常,如果这个值变高,那么我们可以说系统目前仅仅使用了内存(RAM)。
%vmeff表示每秒扫描的页面数,如果说当它的值是100%时是正常情况,它是30%以下的时候就可以认为虚拟内存存在一些问题。0值表示在那个时候没有任何一个页面被扫描。
-d 选项在sar命令中被用以显示块设备的状态报告。在 -d 后面加上 -p (pretty-print)选项可以增强 dev 列的可读性,如下图所示:
[root@localhost ~]# sar -d -p 2 4
-n选项在sar命令中被用来生成网络使用情况的统计报告。下面是语法规则:
# sar -n {keyword} or {ALL}
[root@localhost ~]# sar -n ALL
我们前面已经讨论了sar的日志文件是保存在“/var/log/sa/saDD”里的。使用-f选项可以查看日志文件。
[root@localhost ~]# sar -r -f /var/log/sa/sa26
原文链接: http://www.linuxtechi.com/generate-cpu-memory-io-report-sar-command/
译文链接: http://www.linuxstory.org/generate-cpu-m…rt-sar-command/