sar命令简介
sar(System Activity Reporter)
是系统活动情况报告的缩写。它是由sysstat
软件包提供。sar
工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的特点是可以连续对系统取样,获得大量的取样数据;取样数据和分析的结果都可以存入文件,所需的负载很小。 sar 是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。为了提供不同的信息,sar 提供了丰富的选项、因此使用较为复杂。
注意:本文使用的是
sysstat
版本为sysstat-10.1.5-11.el7.x86_64
,由于sysstat
升级过程中,变动还是很大的,版本不同的话,可用参数会不同,同参数出参显示的数据项也有不同。
sar 的命令格式
sar 的命令格式为:
Usage: sar [ options ] [ <interval> [ <count> ] ]
Options are:
[ -A ] [ -B ] [ -b ] [ -C ] [ -d ] [ -H ] [ -h ] [ -p ] [ -q ] [ -R ]
[ -r ] [ -S ] [ -t ] [ -u [ ALL ] ] [ -V ] [ -v ] [ -W ] [ -w ] [ -y ]
[ -I { <int> [,...] | SUM | ALL | XALL } ] [ -P { <cpu> [,...] | ALL } ]
[ -m { <keyword> [,...] | ALL } ] [ -n { <keyword> [,...] | ALL } ]
[ -j { ID | LABEL | PATH | UUID | ... } ]
[ -f [ <filename> ] | -o [ <filename> ] | -[0-9]+ ]
[ -i <interval> ] [ -s [ <hh:mm:ss> ] ] [ -e [ <hh:mm:ss> ] ]
其中:
- interval : 为取样时间间隔
- count : 为输出次数,若省略此项,默认值为 1
常用选项说明:
选项 | 说明 |
---|---|
-A | 等同于-bBdHqrRSuvwWy -I SUM -I XALL -m ALL -n ALL -u ALL -P ALL |
-b | 显示I/O和传送速率的统计信息 |
-B | 输出内存页面的统计信息 |
-C | 当从一个文件读取数据时,告诉sar显示评论xx sadc |
-d | 报告每个块设备的活动情况,每个块设备是以dev m-n来显示的,m是major number,n是minor number,也可以使块设备名称显示的更友好一些,那就是采用-p参数 |
-H | 报告拒页的使用情况 |
-h | 显示帮助 |
-p | 显示友好设备名字,以方便查看,也可以和-d 和-n 参数结合使用,比如 -dp 或-np |
-q | 输出进程队列长度和平均负载状态统计信息 |
-R | 输出内存页面的统计信息 |
-r | 输出内存和交换空间的统计信息 |
-S | 报告swap的使用情况 |
-t | 读取 /var/log/sa/saDD 的数据时显示其中记录的原始时间,如果没有这个参数使用用户的本地时间 |
-u | 输出CPU使用情况的统计信息 |
-V | 输出版本号信息 |
-v | 输出inode、文件和其他内核表的统计信息 |
-W | 输出系统交换的统计信息 |
-w | 输出系统交换活动信息 |
-y | 输出TTY设备的活动信息 |
-I { irq | SUM | ALL | XALL } | 输出指定中断的统计信息。 |
irq | 指定中断号 |
SUM | 指定输出每秒接收到的中断总数 |
ALL | 指定输出前16个中断 |
XALL | 指定输出全部的中断信息 |
-P {cpu | ALL} | 输出指定 CPU 的统计信息 |
-m | 报告电源管理统计信息,参数可以是CPU, FAN, FREQ, IN, TEMP and USB或者ALL |
-n { DEV | EDEV | NFS | NFSD | SOCK | ALL } | 分析输出网络设备状态统计信息。 |
DEV | 报告网络设备的统计信息 |
EDEV | 报告网络设备的错误统计信息 |
NFS | 报告 NFS 客户端的活动统计信息 |
NFSD | 报告 NFS 服务器的活动统计信息 |
SOCK | 报告网络套接字(sockets)的使用统计信息 |
ALL | 报告所有类型的网络活动统计信息 |
-j | 显示持久化设备名称 |
-f filename | 从文件 filename 读取数据信息。filename 是使用-o 选项时生成的文件。 |
-o filename | 将输出信息保存到文件 filename |
-i | interval 指定间隔时长,单位为秒 |
-s hh:mm:ss | 指定输出统计数据的起始时间 |
-e hh:mm:ss | 指定输出统计数据的截至时间,默认为18:00:00 |
常用命令举例
1、输出CPU使用情况的统计信息
命令:sar
和 sar -u
输出:
[root@localhost tmp]# sar
Linux 3.10.0-514.21.1.el7.x86_64 (localhost) 07/14/2017 _x86_64_ (8 CPU)
11:44:56 PM CPU %user %nice %system %iowait %steal %idle
11:44:58 PM all 0.20 0.00 1.37 0.00 0.00 98.43
11:45:00 PM all 0.00 0.07 1.01 0.00 0.00 98.93
11:45:02 PM all 0.06 0.00 1.00 0.00 0.00 98.94
Average: all 0.09 0.02 1.12 0.00 0.00 98.77
[root@localhost tmp]# sar -u
Linux 3.10.0-514.21.1.el7.x86_64 (localhost) 07/14/2017 _x86_64_ (8 CPU)
11:44:56 PM CPU %user %nice