SAR命令简介
sar
是系统活动报告(System Activity Report)英文单词的首字母缩写。就像它的名字一样,sar
是目前Linux上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。
我们可以使用sar
命令来获得整个系统性能的报告。这有助于我们定位系统性能的瓶颈,并且有助于我们找出这些烦人的性能问题的解决方法。
为什么一开始我就说sar
是一个复杂而又麻烦的命令呢?这并不是说sar
这个命令有多么的难用,而是这个命令输出的内容太多,覆盖面太广,而这也就验证了它是“目前Linux上最为全面的系统性能分析工具之一”这句话。
废话不多说,下面就开始sar
命令的干货总结。
sar
命令常用格式如下:
sar [options] [-A] [-o file] t [n]
其中t
为采样间隔,n
为采样次数,默认值是1;-o file
表示将命令结果以二进制格式存放在文件中,file是文件名;options
为命令行选项,sar
常用的选项有以下:
-A
:所有报告的总和-u
:输出CPU使用情况的统计信息-v
:输出inode、文件和其他内核表的统计信息-d
:输出每一个块设备的活动信息-r
:输出内存和交换空间的统计信息-b
:显示I/O和传送速率的统计信息-a
:文件读写情况-c
:输出进程统计信息,每秒创建的进程数-R
:输出内存页面的统计信息-y
:终端设备活动情况-w
:输出系统交换活动信息
在继续讲解之前,我们再来简单说一下sysstat
包。
sysstat
包
sar
、sa1
和sa2
命令都是sysstat
包的一部分。它是Linux包含的性能监视工具集合。
sar
:显示数据sa1
和sa2
:收集和保存数据用于以后分析。sa2
shell脚本在/var/log/sa
目录中每日写入一个报告。sa1
shell脚本将每日的系统活动信息以二进制数据的形式写入到文件中。
我们可以在/etc/cron.d/
下sysstat
文件中找到sar
默认的cron作业,如下:
# Run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib64/sa/sa1 1 1
# 0 * * * * root /usr/lib64/sa/sa1 600 6 &
# Generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib64/sa/sa2 -A
这样我们就可以按照我们的需求,进行输出定制化了。
sar
不止上面说的几个程序:
sar
:收集、报告或存储信息(CPU、内存、磁盘、中断、网卡、TTY、内核表等等);
sadc
:系统数据收集器,给sar
做后台服务;
sa1
:收记并存储二进制数据到每天的文件;这是设计来给cron执行一个sadc
的前台程序;
sa2
:生成总结报表;
sadf
:以多种格式显示数据(CSV, XML, JSON, etc.),还可以用来生成SVG(Scalable Vector Graphics)图表。
CPU监控
接下来我们说说sar
实际生产使用实例,通过实际操作总结出的经验来和大家分享。
-
命令:
sar 2 3
说明:每2秒采样一次,连续采样3次,查看CPU的整体使用情况
输出:Linux 3.10.0-693.2.2.el7.x86_64 (jellythink) 03/09/2019 _x86_64_ (1 CPU) 10:05:46 PM CPU %us