sar 即System Activity Reporter,是一个多功能的分析工具,包含在sysstat包中。该软件包中还有诸如iostat、mpstat、pidstat等工具。
默认情况它一般有两种运行方式,一是crond调用(/etc/cron.d/sysstat),每十分钟收集一次数据,二是手动执行,收集系统瞬时状态或显示历史数据。
crond执行收集产生的数据默认放在/var/log/sa/sadd,其中dd为2位日期。
建议使用LANG=C sar的方式运行sar指令,因为默认英文环境中,sar输出的日期为AM、PM格式,可能导致03:00:00 PM排在02:00:00 AM的前面,不利于数据分析。使用LANG=C sar将使用24小时制时间收集数据。可以通过alias写入到/etc/bashrc中
sar的配置文件在/etc/sysconfig/sysstat,一般修改HISTORY值,以控制日志保留天数
-f 可以从文件(比如前面提到的/var/log/sa/sadd)读入sar收集到的信息
-b 显示I/O和传输率的统计数据
tps 每秒物理设备的读写数量(tps=rtps+wtps)
rtps 每秒读物理设备请求数
wtps 每秒写物理设备请求数
bread/s 每秒读取数据的块数,单位 块/s
bwrtn/s 每秒写入数据的块数,单位 块/s
(这里的块block在2.4及以后的kernel为512字节,在2.4以前的kernel中是不确定的值)
-P { cpu[0,1,2...] | ALL }显示CPU统计数据,0是第1颗CPU核,ALL是全部CPU核
%user 用户级应用的CPU利用率(百分比)
%nice拥有nice优先级的用户级应用的CPU利用率(百分比)
%system kernel级指令的CPU利用率(百分比)
%iowait 等待未完成的磁盘I/O请求的CPU时间占比
%steal 虚拟CPU的调度等待时间(被hypervisor偷走的cpu时间)
%idle CPU空闲百分比(并非等待磁盘I/O的伪空闲状态)
-n { [DEV,IP,TCP,ICMP...] | ALL }显示网络统计数据,以下为DEV的输出选项
IFACE网卡名称
rxpck/s 每秒接收包数
txpck/s 每秒发送包数
rxkB/s 每秒接收KB数
rxkB/s 每秒发送KB数
rxcmp/s 每秒接收压缩包数
txcmp/s 每秒发送压缩包数
rxmcst/s 每秒接收多播包数
-B 内存分页监控
sar -B 5 3 #每5秒采样一次,连续采样3次,监控内存分页
输出项说明:
pgpgin/s:表示每秒从磁盘或SWAP置换到内存的字节数(KB)
pgpgout/s:表示每秒从内存置换到磁盘或SWAP的字节数(KB)
fault/s:每秒系统产生的缺页数,即主缺页与次缺页之和(major + minor)
majflt/s:每秒产生的主缺页数.
pgfree/s:每秒被放入空闲队列中的页个数
pgscank/s:每秒被kswapd扫描的页个数
pgscand/s:每秒直接被扫描的页个数
pgsteal/s:每秒钟从cache中被清除来满足内存需要的页个数
%vmeff:每秒清除的页(pgsteal)占总扫描页(pgscank+pgscand)的百分比
-q 进程队列长度和平均负载状态监控(RH442考试会用到这个参数查看进程数)
sar -q 10 3 #每3秒采样一次,连续采样3次,监控进程队列长度和平均负载状态
输出项说明:
runq-sz:运行队列的长度(等待运行的进程数)
plist-sz:进程列表中进程(processes)和线程(threads)的数量
ldavg-1:最后1分钟的系统平均负载(System load average)
ldavg-5:过去5分钟的系统平均负载
ldavg-15:过去15分钟的系统平均负载
其他参数
-A:所有报告的总和
-u:输出CPU使用情况的统计信息
-v:输出inode、文件和其他内核表的统计信息
-d:输出每一个块设备的活动信息
-p:将设备显示为卷名(比如dev253-1可能显示为vgsrv-swap)
-r:输出内存和交换空间的统计信息
-R:输出内存页面的统计信息
-y:终端设备活动情况
-W:输出系统交换活动信息
-s:指定sar报告的开始时间,无时间参数是默认为08:00:00
-e:指定sar报告的结束时间,无时间参数是默认为18:00:00
-f:从指定文件读入sar日志数据,-s和-e常常配合-f用来分析指定sar记录的指定时间段数据
有时需要多个sar命令选项结合起来,以便准确判断系统的瓶颈问题
怀疑CPU存在瓶颈,可用 sar -u -q 来查看
怀疑内存存在瓶颈,可用 sar -B -r -W 来查看
怀疑I/O存在瓶颈,可用 sar -b -u -d 来查看