1.简介
sar(System Activity Report)收集、报告或保存系统活动信息。
sar 是一个用于监控和报告系统性能的命令行工具。它是 sysstat 套件的一部分,能够收集和报告各种系统活动的信息,包括 CPU 使用率、内存使用情况、磁盘 I/O 等。
通过定期收集数据,sar 可以帮助系统管理员分析性能瓶颈并进行优化。
2.格式
代码语言:javascript复制sar [ -A ] [ -B ] [ -b ] [ -C ] [ -D ] [ -d ] [ -F [ MOUNT ] ] [
-H ] [ -h ] [ -p ] [ -r [ ALL ] ] [ -S ] [ -t ] [ -u [ ALL ] ] [
-V ] [ -v ] [ -W ] [ -w ] [ -x ] [ -y ] [ -z ] [ --dec={ 0 | 1 |
2 } ] [ --dev=dev_list ] [ --fs=fs_list ] [ --help ] [ --human ]
[ --iface=iface_list ] [ --int=int_list ] [ --pretty ] [ --sadc ]
[ -I [ SUM | ALL ] ] [ -P { cpu_list | ALL } ] [ -m {
keyword[,...] | ALL } ] [ -n { keyword[,...] | ALL } ] [ -q [
keyword[,...] | ALL ] ] [ -j { SID | ID | LABEL | PATH | UUID |
... } ] [ -f [ filename ] | -o [ filename ] | -[0-9] ] [ -i
interval ] [ -s [ start_time ] ] [ -e [ end_time ] ] ] [ interval
[ count ] ]
3.选项
sar 命令支持多种选项,常用的选项包括:
代码语言:javascript复制-D
使用 saYYYYMMDD 而不是 saDD 作为标准的系统活动每日数据文件名。此选项仅在与 -o 选项一起使用时有效,以将数据保存到文件中。
-d
报告每个块设备的活动。当显示数据时,设备名称显示为 /dev 中应该显示的名称。
--dev=DEV_LIST
指定要统计的块设备。DEV_LIST 是一个以逗号分隔的设备名称列表。
-e [ hh:mm[:ss] ] | [ seconds_since_the_epoch ]
设置报告的结束时间。默认结束时间为18:00:00。
小时必须以24小时的格式给出,或者作为自epoch以来的秒数(以10位数给出)。当从文件中读取或写入数据时,可以使用该选项(选项-f或-o)。
-f [ FILENAME ]
从文件名中提取记录(由-o filename 标志创建)。filename 参数的默认值是当前标准的系统活动每日数据文件。如果 filename 是一个目录而不是一个普通文件,那么它被认为是标准系统活动日常数据文件所在目录。选项 -f 与 -o 互斥。
-I [ SUM | ALL ]
该选项用于报告中断统计信息,显示每秒处理器接收到的中断次数。可以使用--int 选项指定中断列表。
可以选择以下两种模式:
SUM:显示每秒总的中断数,这将汇总所有处理器接收到的中断。
ALL:默认模式,显示所有中断的详细统计信息。
为了确保中断统计信息的正确收集,必须使用 sadc 命令的 -S INT 选项进行设置。通过此选项,用户可以监控系统的中断活动,帮助识别性能瓶颈和优化系统配置。
--int=INT_LIST
INT_LIST 是一个以逗号分隔的值或值范围的列表(例如 0-16,35,40-)。
-n { keyword[,...] | ALL }
显示网络接口的统计信息。
可能的关键字有:DEV、EDEV、FC、ICMP、EICMP、ICMP6、EICMP6、IP、EIP、IP6、EIP6、NFS、NFSD、SOCK、SOCK6、SOFT、TCP、ETCP、UDP 和 UDP6。
-o [ FILENAME ]
将读数以二进制形式保存在文件中。每个读数都在一个单独的记录中。filename 参数的默认值是当前标准的系统活动每日数据文件。如果 filename 是一个目录而不是一个普通文件,那么它被认为是标准系统活动日常数据文件所在的目录。
选项 -0 与 -f 互斥。
内核中可用的所有数据都保存在文件中(实际上,sar使用选项-S All调用其数据收集器sadc)。参见 sadc(8) 手册页。
-P { cpu_list | ALL }
报告指定处理器的统计信息。cpu_list是一个以逗号分隔的值或值范围(例如 0,2,4-7,12-)。注意,处理器 0 是第一个处理器,而处理器 all 是所有处理器的全局平均值。指定 ALL 关键字报告每个单独处理器的统计信息,以及全局所有处理器的统计信息。不显示脱机处理器。
-r [ ALL ]
显示内存使用情况。ALL 关键字表示显示所有内存字段。
-s [ hh:mm[:ss] ] | [ seconds_since_the_epoch ]
和 -e 一起指定开始和结束时间。
-u [ ALL ]
显示 CPU 使用情况。ALL关键字表示显示所有CPU字段。
-V
打印版本号然后退出。
4.示例
(1)统计 CPU 利用率。
每 2 秒报告一次 CPU 利用率。总共进行 5 次采样。
代码语言:javascript复制sar -u 2 5
(2)统计中断信息。
每 2 秒报告一次 irq14 的统计信息。总共进行 10 次采样。数据存储在名为 int14.file 的文件中。
代码语言:javascript复制sar -I --int=14 -o int14.file 2 10
(3)查看内存和网络统计信息。
显示存储在每日数据文件 sa16 中的内存和网络统计信息。
代码语言:javascript复制sar -r -n DEV -f /var/log/sa/sa16
(4)显示当前每日数据文件中保存的所有统计数据。
代码语言:javascript复制sar -A
参考文献
Sysstat Home Page sar(1) - Linux manual page - man7.org