1.命令作用
收集、报告或保存系统活动信息(Collect, report, or save system activity information);常用于在指定时间间隔收集系统硬件信息;在最小安装下没有此命令,需要yum install sysstat安装
2.命令语法
Usage: sar [ options ] [ <interval> [ <count> ] ]
3.参数详解
OPTION:
- -A,相当于-bBdFHqrRSuvwWy -I SUM -I XALL -m ALL -n ALL -u ALL -P ALL的集合
- -B,报告内存分页统计信息,即数据从磁盘到swap或内存调入调出统计信息
- -b,报告输入/输出(I/O)以及传输速率的统计数据
- -C,在从文件中读取数据时,要求 sar 显示由 sadc 插入的注释信息
- -d,报告每个块设备的活动情况
- -F [ MOUNT ],显示当前已挂载文件系统的统计信息,忽略伪文件系统
- -H,报告大页面的使用情况统计数据
- -h,显示一条简短的帮助信息后退出
- -p,与选项-d选项一起使用,美化设备名称(-d默认显示"dev m-n")
- -q,报告队列长度及负载平均值
- -R,报告内存统计信息
- -r,报告内存使用情况统计信息
- -S,报告交换空间的使用情况统计数据
- -t,从每日数据文件读取数据时,应指示 sar 显示数据文件创建者所在时区的原始时间戳;若未指定此选项,sar 命令将显示用户所在时区的时间戳
- -u [ ALL ],报告CPU利用率;ALL关键字表示应显示所有CPU字段
- -V,打印版本号然后退出
- -v,报告inode、文件及其他内核表的状态
- -W,报告交换统计数据
- -w,报告任务创建及系统切换活动
- -y,报告TTY设备活动情况
- -I { <int> [,...] | SUM | ALL | XALL },报告指定中断的相关统计信息。int 为中断编号。在命令行中指定多个 -I int 参数将查看多个独立的中断。SUM 关键字表示要显示每秒接收到的中断总数。ALL 关键字表示要报告前 16 个中断的统计信息,而 XALL 关键字表示要报告所有中断的统计信息,包括潜在的 APIC 中断源。请注意,中断统计信息取决于使用"-S INT"选项收集的数据
- -P { <cpu> [,...] | ALL } ],报告指定处理器或多个处理器的每台处理器的统计信息。若指定"ALL"关键字,则会报告每个单独处理器以及所有处理器的全局统计信息。请注意,处理器 0 是第一个处理器
- -m { <keyword> [,...] | ALL },报告电源管理统计数据。请注意,这些统计数据是基于使用"-S POWER"选项收集而来的。可能的关键词有:CPU(中央处理器)、FAN(风扇)、FREQ(频率)、IN(输入)、TEMP(温度)和 USB(通用串行总线)
- -n { <keyword> [,...] | ALL },报告网络统计数据。可能的关键词有:DEV、EDEV、NFS、NFSD、SOCK、IP、EIP、ICMP、EICMP、TCP、ETCP、UDP、SOCK6、IP6、EIP6、ICMP6、EICMP6 和 UDP6
- -j { ID | LABEL | PATH | UUID | ... },显示持久设备名称。请与选项 -d 一同使用此选项。选项 ID、LABEL 等用于指定持久名称的类型。这些选项没有限制,唯一的前提是具有所需持久名称的目录存在于 /dev/disk 中。如果未找到设备的持久名称,则会以格式化方式显示设备名称(请参阅选项 -p 以下内容)
- -f [ <filename> ] | -o [ <filename> ] | -[0-9]+ ],从文件名中提取记录(由 -o 参数指定的文件名生成)。文件名参数的默认值为当前的每日数据文件,即 /var/log/sa/sadd 文件。-f 选项与 -o 选项互斥
- -i <interval>,按照"间隔参数"所指定的秒数范围,选取尽可能接近该秒数的记录数据
- -s [ <hh:mm:ss> ],设定数据的起始时间,使 sar 命令提取在指定时间(或紧接该时间之后)进行标记的记录。默认的起始时间为 08:00:00。小时必须以 24 小时制格式给出。此选项仅在从文件读取数据(使用选项 -f )时可用
- -e [ <hh:mm:ss> ],设定报告的结束时间。默认的结束时间为 18:00:00。小时需以 24 小时制格式输入。此选项可用于从文件读取数据或向文件写入数据(使用选项 -f 或 -o)时的情况
4.常用用例
4.1.磁盘内存调度信息
[root@node2 ~]# sar -B
Linux 3.10.0-957.el7.x86_64 (node2) 07/22/2025 _x86_64_ (1 CPU)
09:51:19 AM LINUX RESTART
10:00:01 AM pgpgin/s pgpgout/s fault/s majflt/s pgfree/s pgscank/s pgscand/s pgsteal/s %vmeff
10:10:01 AM 18.57 0.84 84.42 0.24 27.92 0.00 0.00 0.00 0.00
Average: 18.57 0.84 84.42 0.24 27.92 0.00 0.00 0.00 0.00
[root@node2 ~]#
# 输出详细解释
pgpgin/s,系统每秒从磁盘读取并加载到内存中的千字节数总和
pgpgout/s,系统每秒向磁盘写入的千字节数总量
fault/s,系统每秒产生的页面故障次数(包括重大故障和轻微故障)。这并非是对产生 I/O 操作的页面故障次数的统计,因为有些页面故障是无需进行 I/O 操作就能解决的
majflt/s,系统每秒出现的重大故障次数,即那些需要从磁盘加载内存页面的故障次数
pgfree/s,系统每秒在空闲列表中分配的页面数量
pgscank/s,kswapd守护进程每秒扫描的页面数量
pgscand/s,每秒直接扫描的页面数量
pgsteal/s,系统每秒从缓存(页面缓存和交换缓存)中回收的页面数量,以满足其内存需求
%vmeff,该指标的计算公式为"pgsteal / pgscan",它用于衡量页面回收的效率。如果该比例接近 100%,那么几乎每一页从非活跃列表的尾部取出的数据都会被处理。如果该比例过低(例如低于 30%),则虚拟内存可能会出现一些问题。如果在这段时间内没有扫描到任何页面,该字段将显示为零
4.2.I/O及传输速率统计
[root@node2 ~]# sar -b
Linux 3.10.0-957.el7.x86_64 (node2) 07/22/2025 _x86_64_ (1 CPU)
09:51:19 AM LINUX RESTART
10:00:01 AM tps rtps wtps bread/s bwrtn/s
10:10:01 AM 0.83 0.71 0.12 37.14 1.67
10:20:01 AM 8.56 7.89 0.67 265.96 34.43
10:30:01 AM 0.05 0.01 0.04 1.07 0.59
10:40:01 AM 0.09 0.00 0.08 0.07 0.97
10:50:01 AM 0.08 0.00 0.07 0.11 1.00
Average: 1.92 1.72 0.20 60.88 7.73
[root@node2 ~]#
# 输出内容解释
tps,每秒向物理设备发出的传输总数。传输是指对物理设备的I/O请求;多个逻辑请求可以合并为对设备的单个 I/O 请求。传输的大小是不确定的
rtps,每秒向物理设备发出的读取请求总数
wtps,每秒向物理设备发出的写入请求总数
bread/s,每秒从设备读取的数据块总量(以字节为单位);数据块相当于扇区,因此其大小为512字节
bwrtn/s,每秒写入设备的数据块总量
4.3.每个设备活动信息
[root@node2 ~]# sar -d
Linux 3.10.0-957.el7.x86_64 (node2) 07/22/2025 _x86_64_ (1 CPU)
09:51:19 AM LINUX RESTART
10:00:01 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
10:10:01 AM dev8-0 0.83 37.14 1.67 46.69 0.00 0.40 0.23 0.02
10:10:01 AM dev8-16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10:20:01 AM dev8-0 8.56 265.96 34.43 35.11 0.00 0.25 0.12 0.11
10:20:01 AM dev8-16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10:30:01 AM dev8-0 0.05 1.07 0.59 32.03 0.00 0.87 0.32 0.00
10:30:01 AM dev8-16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10:40:01 AM dev8-0 0.09 0.07 0.97 12.12 0.00 0.80 0.31 0.00
10:40:01 AM dev8-16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10:50:01 AM dev8-0 0.08 0.11 1.00 14.73 0.00 1.02 0.40 0.00
10:50:01 AM dev8-16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:00:01 AM dev8-0 0.32 27.65 6.77 106.33 0.00 0.97 0.51 0.02
11:00:01 AM dev8-16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:00:01 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
11:10:01 AM dev8-0 0.07 0.21 0.78 14.85 0.00 0.65 0.27 0.00
11:10:01 AM dev8-16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: dev8-0 1.43 47.46 6.60 37.88 0.00 0.30 0.15 0.02
Average: dev8-16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
[root@node2 ~]#
[root@node2 ~]#
[root@node2 ~]# sar -dp
Linux 3.10.0-957.el7.x86_64 (node2) 07/22/2025 _x86_64_ (1 CPU)
09:51:19 AM LINUX RESTART
10:00:01 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
10:10:01 AM sda 0.83 37.14 1.67 46.69 0.00 0.40 0.23 0.02
10:10:01 AM sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10:20:01 AM sda 8.56 265.96 34.43 35.11 0.00 0.25 0.12 0.11
10:20:01 AM sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10:30:01 AM sda 0.05 1.07 0.59 32.03 0.00 0.87 0.32 0.00
10:30:01 AM sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10:40:01 AM sda 0.09 0.07 0.97 12.12 0.00 0.80 0.31 0.00
10:40:01 AM sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10:50:01 AM sda 0.08 0.11 1.00 14.73 0.00 1.02 0.40 0.00
10:50:01 AM sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:00:01 AM sda 0.32 27.65 6.77 106.33 0.00 0.97 0.51 0.02
11:00:01 AM sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:00:01 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
11:10:01 AM sda 0.07 0.21 0.78 14.85 0.00 0.65 0.27 0.00
11:10:01 AM sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: sda 1.43 47.46 6.60 37.88 0.00 0.30 0.15 0.02
Average: sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
[root@node2 ~]#
# 输出内容解释:
DEV,设备名称
tps,请指出每秒向该设备发出的传输次数。多个逻辑请求可以合并为对设备的单个 I/O 请求。一次传输的大小是不确定的
rd_sec/s,从设备读取的扇区数量。每个扇区的大小为 512 字节
wr_sec/s,设备上写入的数据扇区数量。每个扇区的大小为 512 字节
avgrq-sz,向该设备发出的请求的平均大小(以扇区为单位)
avgqu-sz,发送至该设备的请求的平均排队长度
await,对设备发出的 I/O 请求被处理完成的平均所需时间(以毫秒为单位)。这包括请求在队列中等待的时间以及处理这些请求所花费的时间
4.4.已挂载磁盘设备信息
[root@node2 ~]# sar -F 1 2
Linux 3.10.0-957.el7.x86_64 (node2) 07/22/2025 _x86_64_ (1 CPU)
11:29:47 AM MBfsfree MBfsused %fsused %ufsused Ifree Iused %Iused FILESYSTEM
11:29:48 AM 5417 12704 70.11 70.11 9107769 175303 1.89 /dev/sda3
11:29:48 AM 151 146 49.22 49.22 153260 340 0.22 /dev/sda1
11:29:48 AM MBfsfree MBfsused %fsused %ufsused Ifree Iused %Iused FILESYSTEM
11:29:49 AM 5417 12704 70.11 70.11 9107769 175303 1.89 /dev/sda3
11:29:49 AM 151 146 49.22 49.22 153260 340 0.22 /dev/sda1
Summary: MBfsfree MBfsused %fsused %ufsused Ifree Iused %Iused FILESYSTEM
Summary 5417 12704 70.11 70.11 9107769 175303 1.89 /dev/sda3
Summary 151 146 49.22 49.22 153260 340 0.22 /dev/sda1
[root@node2 ~]#
# 输出内容解释
MBfsfree,可用空间的总量单位为兆字节(包括仅限特权用户使用的空间)
MBfsused,以兆字节为单位的总占用空间量
%fsused,特权用户所看到的文件系统空间使用率百分比
%ufsused,未授权用户所看到的文件系统空间使用率百分比
Ifree,文件系统中的空文件节点总数
Iused,文件系统中使用的文件节点总数
%Iused,文件系统中所使用的文件节点的百分比
4.5.内存信息
[root@node2 ~]# sar -R
Linux 3.10.0-957.el7.x86_64 (node2) 07/22/2025 _x86_64_ (1 CPU)
09:51:19 AM LINUX RESTART
10:00:01 AM frmpg/s bufpg/s campg/s
10:10:01 AM -5.71 0.00 2.87
10:20:01 AM 2.52 0.00 -41.19
10:30:01 AM -0.16 0.00 0.06
10:40:01 AM 0.01 0.00 0.02
10:50:01 AM -0.05 0.00 0.01
11:00:01 AM 4.06 0.00 -3.79
11:10:01 AM -0.05 0.00 0.01
11:20:01 AM 0.00 0.00 0.01
11:30:01 AM -0.04 0.00 0.01
Average: 0.06 0.00 -4.66
[root@node2 ~]#
# 输出信息解释
frmpg/s,系统每秒释放的内存页面数量。负值则表示系统分配的页面数量。请注意,一个页面的大小根据机器架构的不同为 4 kB 或 8 kB
bufpg/s,系统每秒使用的作为缓冲区的额外内存页面数量。负值表示系统使用的缓冲区页面数量更少
campg/s,系统每秒缓存的额外内存页面数量。负值表示缓存中的页面数量较少
[root@node2 ~]# sar -r
Linux 3.10.0-957.el7.x86_64 (node2) 07/22/2025 _x86_64_ (1 CPU)
09:51:19 AM LINUX RESTART
10:00:01 AM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
10:10:01 AM 61792 934104 93.80 0 281276 3862964 124.89 284600 463900 4
10:20:01 AM 67792 928104 93.19 0 183028 3862956 124.89 288664 371512 0
10:30:01 AM 67404 928492 93.23 0 183176 3862956 124.89 288692 371836 0
10:40:01 AM 67420 928476 93.23 0 183224 3862956 124.89 289028 371504 0
10:50:01 AM 67296 928600 93.24 0 183244 3862972 124.89 289100 371536 0
11:00:01 AM 76972 918924 92.27 0 174212 3887560 125.69 282424 368928 0
11:10:01 AM 76848 919048 92.28 0 174224 3887560 125.69 282468 368984 0
11:20:01 AM 76848 919048 92.28 0 174252 3887560 125.69 282492 368984 0
11:30:01 AM 76756 919140 92.29 0 174272 3887564 125.69 282500 369016 0
Average: 71014 924882 92.87 0 190101 3873894 125.25 285552 380689 0
[root@node2 ~]#
# 输出信息解释
kbmemfree,可用的空闲内存(以千字节为单位)
kbmemused,以千字节为单位表示的已使用内存量。此数值未将内核自身所占用的内存计算在内
%memused,已使用内存的百分比
kbbuffers,内核用于缓冲的内存量(以千字节为单位)
kbcached,内核用于缓存数据所占用的内存量(以千字节为单位)
kbcommit,当前工作负载所需的内存(以千字节为单位)。这只是一个大致的估算值,用于确定需要多少内存(包括内存和交换空间)以确保永远不会出现内存不足的情况
%commit,当前工作负载所需的内存占总内存(RAM + 内存交换区)的比例。这个数字可能会超过 100%,因为内核通常会超额分配内存
kbactive,以千字节为单位表示的活动内存量(这部分内存是较近期被使用的,通常除非绝对必要否则不会被回收)
kbinact,未使用内存的大小(即近期未被使用的内存)以千字节为单位。(更适合用于其他用途)
kbdirty,等待写入磁盘的内存容量(以千字节为单位)
4.6.交换空间信息
[root@node2 ~]# sar -S
Linux 3.10.0-957.el7.x86_64 (node2) 07/22/2025 _x86_64_ (1 CPU)
09:51:19 AM LINUX RESTART
10:00:01 AM kbswpfree kbswpused %swpused kbswpcad %swpcad
10:10:01 AM 2049276 47872 2.28 10108 21.11
10:20:01 AM 2047484 49664 2.37 10256 20.65
10:30:01 AM 2047484 49664 2.37 10424 20.99
10:40:01 AM 2047484 49664 2.37 10404 20.95
10:50:01 AM 2047484 49664 2.37 10416 20.97
11:00:01 AM 2046204 50944 2.43 11364 22.31
11:10:01 AM 2046204 50944 2.43 11416 22.41
11:20:01 AM 2046204 50944 2.43 11392 22.36
11:30:01 AM 2046204 50944 2.43 11416 22.41
11:40:01 AM 2046204 50944 2.43 11428 22.43
11:50:01 AM 2046204 50944 2.43 11424 22.42
12:00:01 PM 2046204 50944 2.43 11416 22.41
12:10:01 PM 2046204 50944 2.43 11424 22.42
12:20:01 PM 2046204 50944 2.43 11412 22.40
Average: 2046789 50359 2.40 11021 21.88
[root@node2 ~]#
# 输出信息解释
kbswpfree,以千字节为单位的可用交换空间量
kbswpused,以千字节为单位的已使用交换空间量
%swpused,已使用的交换空间百分比
kbswpcad,缓存交换内存的大小(以千字节为单位)。这部分内存曾被交换出去,但又重新被调入内存,但仍处于交换区域中(如果需要更多内存,它无需再次被交换出去,因为已经处于交换区域中了。这样可以节省 I/O 操作)
%swpcad,缓存交换内存占已使用交换空间的比例
[root@node2 ~]# sar -W
Linux 3.10.0-957.el7.x86_64 (node2) 07/22/2025 _x86_64_ (1 CPU)
09:51:19 AM LINUX RESTART
10:00:01 AM pswpin/s pswpout/s
10:10:01 AM 1.14 0.00
10:20:01 AM 0.09 0.69
10:30:01 AM 0.08 0.00
10:40:01 AM 0.00 0.00
10:50:01 AM 0.01 0.00
11:00:01 AM 0.37 0.62
11:10:01 AM 0.03 0.00
11:20:01 AM 0.00 0.00
11:30:01 AM 0.01 0.00
11:40:01 AM 0.01 0.00
11:50:01 AM 0.00 0.00
12:00:01 PM 0.00 0.00
12:10:01 PM 0.01 0.00
12:20:01 PM 0.00 0.00
Average: 0.13 0.09
[root@node2 ~]#
# 输出信息解释
pswpin/s,系统每秒引入的交换页面总数
pswpout/s,系统每秒交换出的页面总数
4.7.CUP使用信息
[root@node2 ~]# sar -u
Linux 3.10.0-957.el7.x86_64 (node2) 07/22/2025 _x86_64_ (1 CPU)
09:51:19 AM LINUX RESTART
10:00:01 AM CPU %user %nice %system %iowait %steal %idle
10:10:01 AM all 0.12 0.00 0.21 0.01 0.00 99.67
10:20:01 AM all 0.16 0.01 0.33 0.01 0.00 99.50
10:30:01 AM all 0.13 0.00 0.15 0.00 0.00 99.72
10:40:01 AM all 0.12 0.00 0.17 0.01 0.00 99.70
10:50:01 AM all 0.13 0.00 0.16 0.01 0.00 99.70
11:00:01 AM all 0.13 0.00 0.18 0.01 0.00 99.68
11:10:01 AM all 0.13 0.00 0.15 0.01 0.00 99.71
11:20:01 AM all 0.14 0.00 0.16 0.00 0.00 99.69
11:30:01 AM all 0.12 0.00 0.16 0.01 0.00 99.71
11:40:01 AM all 0.10 0.00 0.16 0.00 0.00 99.74
11:50:01 AM all 0.11 0.00 0.15 0.00 0.00 99.74
12:00:01 PM all 0.12 0.00 0.16 0.00 0.00 99.72
12:10:01 PM all 0.13 0.00 0.16 0.01 0.00 99.70
12:20:01 PM all 0.12 0.00 0.15 0.00 0.00 99.73
12:30:01 PM all 0.10 0.00 0.13 0.00 0.00 99.76
Average: all 0.12 0.00 0.17 0.00 0.00 99.70
[root@node2 ~]#
# 输出信息解释
CPU
%user,在用户级别(应用程序)执行过程中所消耗的 CPU 利用率百分比。请注意,此字段包括运行虚拟处理器所花费的时间
%nice,在以"优先级良好"模式在用户级别执行时所出现的 CPU 利用率百分比
%system,在系统级别(内核)执行过程中所发生的 CPU 利用率的百分比。请注意,此字段包含了处理硬件和软件中断所花费的时间
%iowait,CPU 或多个 CPU 在闲置状态下(即系统存在未完成的磁盘 I/O 请求时)所占的时间比例
%steal,在虚拟机监控程序为其他虚拟处理器提供服务期间,虚拟 CPU 或多个虚拟 CPU 用于非自愿等待的时间所占的百分比
%idle,CPU 或多个 CPU 在空闲状态下的时间占比,即系统中不存在未完成的磁盘 I/O 请求的时间占比
4.8.inode使用信息
[root@node2 ~]# sar -v
Linux 3.10.0-957.el7.x86_64 (node2) 07/22/2025 _x86_64_ (1 CPU)
09:51:19 AM LINUX RESTART
10:00:01 AM dentunusd file-nr inode-nr pty-nr
10:10:01 AM 6692 8672 20578 2
10:20:01 AM 27371 8672 43367 3
10:30:01 AM 27380 8672 43367 3
10:40:01 AM 27393 8672 43368 3
10:50:01 AM 27399 8672 43368 3
11:00:01 AM 24920 8672 40953 3
11:10:01 AM 24942 8672 40953 3
11:20:01 AM 24950 8672 40955 3
11:30:01 AM 24959 8672 40958 3
11:40:01 AM 24979 8672 40955 3
11:50:01 AM 24985 8672 40955 3
12:00:01 PM 24991 8672 40955 3
12:10:01 PM 25006 8672 40958 3
12:20:01 PM 25009 8672 40955 3
12:30:01 PM 25015 8672 40955 3
Average: 24399 8672 40240 3
[root@node2 ~]#
#输出内容解释
dentunusd,目录缓存中未使用的缓存条目数量
file-nr,系统使用的文件句柄数量
inode-nr,系统使用的 inode 处理器数量
pty-nr,系统所使用的伪终端数量
4.9.其他用例
sar -u 2 5 # 每 2 秒钟报告一次 CPU 利用率。会显示 5 行数据
sar -I 14 -o int14.file 2 10 # 每 2 秒钟报告一次 IRQ 14 的统计信息。显示 10 行数据。数据存储在一个名为"int14.file"的文件中
sar -r -n DEV -f /var/log/sa/sa16 # 显示内存和网络统计数据已保存在每日数据文件"sa16"中
sar -A # 显示当前每日数据文件中保存的所有统计数据