命令简介 sar
命令是sysstat
工具包中的一个命令。sar 是 System Activity Reporter 的缩写,是Linux 系统性能分析工具之一。它能够收集系统的各种性能数据,如 CPU 使用率、内存使用情况、磁盘 I/O 等,并以可读性强的形式进行展示。用户可以利用 sar 命令实时监控系统性能、分析系统负载情况、排查性能问题等。
命令格式 sar
命令用于收集和报告 CPU、内存、网络等系统活动数据。
1 sar [ 选项 ] [ <时间间隔> [ <次数> ] ]
其中:
选项: 用于指定 sar
命令的参数和选项。
<时间间隔>: 指定统计数据的时间间隔,即 sar
命令每次收集统计数据的时间间隔。单位为秒。
<次数>: 指定 sar
命令收集统计数据的次数。
参数说明
参数
描述
备注
-A
显示所有可用的报告
-
-B
显示内存和交换设备的统计信息
-
-b
显示缓冲区的统计信息
-
-C
显示 CPU 的统计信息
-
-D
显示块设备的统计信息
-
-d
显示块设备和分区的统计信息
-
-F [ MOUNT ]
显示文件系统的统计信息
可以指定挂载点
-H
以人类可读的格式显示结果
-
-h
显示帮助信息
-
-p
显示页交换的统计信息
-
-r [ ALL ]
显示内存的统计信息
可选参数 ALL 显示全部信息
-S
显示交换空间的统计信息
-
-t
显示任务(进程)的统计信息
-
-u [ ALL ]
显示 CPU 使用率的统计信息
可选参数 ALL 显示全部信息
-V
显示 sar
的版本信息
-
-v
显示内核的版本信息
-
-W
显示交换设备的统计信息
-
-w
显示任务(进程)和 I/O 子系统的统计信息
-
-y
显示终端设备的统计信息
-
-z
显示客户端的统计信息
-
-I [ SUM | ALL ]
显示中断的统计信息
可选参数 SUM 显示总和,ALL 显示全部
-P { | ALL }
显示指定 CPU 的统计信息
可以指定 CPU 列表或 ALL
-m { [,…] | ALL }
显示指定关键词的统计信息
可以指定关键词列表或 ALL
-n { [,…] | ALL }
显示指定关键词的网络统计信息
可以指定关键词列表或 ALL
-q [ [,…] | ALL ]
显示指定关键词的队列统计信息
可以指定关键词列表或 ALL
–dev=
指定要统计的设备列表
-
–fs=
指定要统计的文件系统列表
-
–iface=
指定要统计的网络接口列表
-
–int=
指定要统计的中断列表
-
–dec={ 0 | 1 | 2 }
指定输出结果的精度
可选值为 0、1、2
–help
显示帮助信息
-
–human
以人类可读的格式显示结果
-
–pretty
以美观的格式显示结果
-
–sadc
从系统启动开始连续输出数据
-
-j { SID | ID | LABEL | PATH | UUID | … }
指定输出结果的格式
可选参数为 SID、ID、LABEL、PATH、UUID 等
-f [ ]
读取指定文件中的数据
可选参数为文件名
-o [ ]
输出结果到指定文件中
可选参数为文件名
-[0-9]+
指定输出的行数
数字表示输出行数
-i
指定统计信息的时间间隔
参数为时间间隔,单位为秒
-s [ hh:mm[:ss] ]
指定统计信息的起始时间
参数为起始时间,格式为 hh:mm[:ss]
-e [ hh:mm[:ss] ]
指定统计信息的结束时间
参数为结束时间,格式为 hh:mm[:ss]
命令实例 基本用法 1.查看 CPU 使用率
1 2 3 4 5 6 7 8 9 leazhi@leazhi-ubuntu2310:~/Templates$ sar -u 1 3 Linux 6.5.0-25-generic (leazhi-ubuntu2310) 03/13/2024 _x86_64_ (32 CPU) 10:05:11 AM CPU %user %nice %system %iowait %steal %idle 10:05:12 AM all 3.12 0.00 0.69 0.00 0.00 96.19 10:05:13 AM all 3.77 0.00 8.46 0.06 0.00 87.71 10:05:14 AM all 2.92 0.00 0.69 0.06 0.00 96.30 平均时间: all 3.27 0.00 3.27 0.04 0.00 93.42
2.查看内存使用率
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 leazhi@leazhi-ubuntu2310:~/Templates$ sar -r 1 2 Linux 6.5.0-25-generic (leazhi-ubuntu2310) 03/13/2024 _x86_64_ (32 CPU) 10:07:34 AM kbmemfree kbavail kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty 10:07:35 AM 110851508 117918972 11417892 8.67 679904 7614180 57066392 41.99 12773184 6216464 104 10:07:36 AM 110855616 117923080 11411608 8.67 679904 7616356 56914136 41.88 12775636 6218652 88 平均时间: 110853562 117921026 11414750 8.67 679904 7615268 56990264 41.94 12774410 6217558 96 leazhi@leazhi-ubuntu2310:~/Templates$ sar -r -h 1 2 Linux 6.5.0-25-generic (leazhi-ubuntu2310) 03/13/2024 _x86_64_ (32 CPU) 10:08:50 AM kbmemfree kbavail kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty 10:08:51 AM 105.8G 112.5G 10.8G 8.6% 664.0M 7.3G 54.2G 41.9% 12.1G 5.9G 328.0k 10:08:52 AM 105.8G 112.5G 10.8G 8.6% 664.0M 7.3G 54.2G 41.9% 12.1G 5.9G 228.0k 平均时间: 105.8G 112.5G 10.8G 8.6% 664.0M 7.3G 54.2G 41.9% 12.1G 5.9G 278.0k leazhi@leazhi-ubuntu2310:~/Templates$ sar -S -h 1 2 Linux 6.5.0-25-generic (leazhi-ubuntu2310) 03/13/2024 _x86_64_ (32 CPU) 10:10:41 AM kbswpfree kbswpused %swpused kbswpcad %swpcad 10:10:42 AM 4.0G 0.0k 0.0% 0.0k 0.0% 10:10:43 AM 4.0G 0.0k 0.0% 0.0k 0.0% 平均时间: 4.0G 0.0k 0.0% 0.0k 0.0%
3.查看磁盘 I/O 情况
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 leazhi@leazhi-ubuntu2310:~/Templates$ sar -d -h 1 2 Linux 6.5.0-25-generic (leazhi-ubuntu2310) 03/13/2024 _x86_64_ (32 CPU) 10:11:49 AM tps rkB/s wkB/s dkB/s areq-sz aqu-sz await %util DEV 10:11:50 AM 0.00 0.0k 0.0k 0.0k 0.0k 0.00 0.00 0.0% loop0 10:11:50 AM 0.00 0.0k 0.0k 0.0k 0.0k 0.00 0.00 0.0% loop1 10:11:50 AM 0.00 0.0k 0.0k 0.0k 0.0k 0.00 0.00 0.0% loop2 10:11:50 AM 0.00 0.0k 0.0k 0.0k 0.0k 0.00 0.00 0.0% loop3 10:11:50 AM 0.00 0.0k 0.0k 0.0k 0.0k 0.00 0.00 0.0% loop4 10:11:50 AM 0.00 0.0k 0.0k 0.0k 0.0k 0.00 0.00 0.0% loop5 10:11:50 AM 0.00 0.0k 0.0k 0.0k 0.0k 0.00 0.00 0.0% loop6 10:11:50 AM 0.00 0.0k 0.0k 0.0k 0.0k 0.00 0.00 0.0% loop7 10:11:50 AM 0.00 0.0k 0.0k 0.0k 0.0k 0.00 0.00 0.0% nvme0n1 10:11:50 AM 0.00 0.0k 0.0k 0.0k 0.0k 0.00 0.00 0.0% nvme1n1 10:11:50 AM 0.00 0.0k 0.0k 0.0k 0.0k 0.00 0.00 0.0% nvme2n1 10:11:50 AM tps rkB/s wkB/s dkB/s areq-sz aqu-sz await %util DEV 10:11:51 AM 0.00 0.0k 0.0k 0.0k 0.0k 0.00 0.00 0.0% loop0 10:11:51 AM 0.00 0.0k 0.0k 0.0k 0.0k 0.00 0.00 0.0% loop1 10:11:51 AM 0.00 0.0k 0.0k 0.0k 0.0k 0.00 0.00 0.0% loop2 10:11:51 AM 0.00 0.0k 0.0k 0.0k 0.0k 0.00 0.00 0.0% loop3 10:11:51 AM 0.00 0.0k 0.0k 0.0k 0.0k 0.00 0.00 0.0% loop4 10:11:51 AM 0.00 0.0k 0.0k 0.0k 0.0k 0.00 0.00 0.0% loop5 10:11:51 AM 0.00 0.0k 0.0k 0.0k 0.0k 0.00 0.00 0.0% loop6 10:11:51 AM 0.00 0.0k 0.0k 0.0k 0.0k 0.00 0.00 0.0% loop7 10:11:51 AM 26.00 0.0k 332.0k 0.0k 12.8k 0.06 2.27 5.2% nvme0n1 10:11:51 AM 0.00 0.0k 0.0k 0.0k 0.0k 0.00 0.00 0.0% nvme1n1 10:11:51 AM 0.00 0.0k 0.0k 0.0k 0.0k 0.00 0.00 0.0% nvme2n1 平均时间: tps rkB/s wkB/s dkB/s areq-sz aqu-sz await %util DEV 平均时间: 0.00 0.0k 0.0k 0.0k 0.0k 0.00 0.00 0.0% loop0 平均时间: 0.00 0.0k 0.0k 0.0k 0.0k 0.00 0.00 0.0% loop1 平均时间: 0.00 0.0k 0.0k 0.0k 0.0k 0.00 0.00 0.0% loop2 平均时间: 0.00 0.0k 0.0k 0.0k 0.0k 0.00 0.00 0.0% loop3 平均时间: 0.00 0.0k 0.0k 0.0k 0.0k 0.00 0.00 0.0% loop4 平均时间: 0.00 0.0k 0.0k 0.0k 0.0k 0.00 0.00 0.0% loop5 平均时间: 0.00 0.0k 0.0k 0.0k 0.0k 0.00 0.00 0.0% loop6 平均时间: 0.00 0.0k 0.0k 0.0k 0.0k 0.00 0.00 0.0% loop7 平均时间: 13.00 0.0k 166.0k 0.0k 12.8k 0.03 2.27 2.6% nvme0n1 平均时间: 0.00 0.0k 0.0k 0.0k 0.0k 0.00 0.00 0.0% nvme1n1 平均时间: 0.00 0.0k 0.0k 0.0k 0.0k 0.00 0.00 0.0% nvme2n1
4.查看网络流量
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 leazhi@leazhi-ubuntu2310:~/Templates$ sar -n DEV 1 3 Linux 6.5.0-25-generic (leazhi-ubuntu2310) 03/13/2024 _x86_64_ (32 CPU) 10:13:21 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil 10:13:22 AM lo 36.00 36.00 5.01 5.01 0.00 0.00 0.00 0.00 10:13:22 AM eno2 25.00 11.00 6.29 0.99 0.00 0.00 8.00 0.01 10:13:22 AM wlp0s20f3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:13:22 AM br0 23.00 11.00 5.85 0.99 0.00 0.00 7.00 0.00 10:13:22 AM virbr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:13:22 AM vnet0 0.00 9.00 0.00 2.05 0.00 0.00 0.00 0.00 10:13:22 AM vnet1 0.00 9.00 0.00 2.05 0.00 0.00 0.00 0.00 10:13:22 AM docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:13:22 AM enxe2925c0465ea 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:13:22 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil 10:13:23 AM lo 8.00 8.00 0.47 0.47 0.00 0.00 0.00 0.00 10:13:23 AM eno2 16.00 2.00 2.81 0.37 0.00 0.00 12.00 0.00 10:13:23 AM wlp0s20f3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:13:23 AM br0 16.00 2.00 2.59 0.37 0.00 0.00 12.00 0.00 10:13:23 AM virbr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:13:23 AM vnet0 0.00 14.00 0.00 2.42 0.00 0.00 0.00 0.00 10:13:23 AM vnet1 0.00 14.00 0.00 2.42 0.00 0.00 0.00 0.00 10:13:23 AM docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:13:23 AM enxe2925c0465ea 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:13:23 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil 10:13:24 AM lo 64.00 64.00 7.77 7.77 0.00 0.00 0.00 0.00 10:13:24 AM eno2 27.00 14.00 5.02 1.23 0.00 0.00 8.00 0.00 10:13:24 AM wlp0s20f3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:13:24 AM br0 25.00 14.00 4.55 1.23 0.00 0.00 7.00 0.00 10:13:24 AM virbr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:13:24 AM vnet0 0.00 8.00 0.00 0.55 0.00 0.00 0.00 0.00 10:13:24 AM vnet1 0.00 8.00 0.00 0.55 0.00 0.00 0.00 0.00 10:13:24 AM docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10:13:24 AM enxe2925c0465ea 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 平均时间: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil 平均时间: lo 36.00 36.00 4.42 4.42 0.00 0.00 0.00 0.00 平均时间: eno2 22.67 9.00 4.70 0.87 0.00 0.00 9.33 0.00 平均时间: wlp0s20f3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 平均时间: br0 21.33 9.00 4.33 0.87 0.00 0.00 8.67 0.00 平均时间: virbr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 平均时间: vnet0 0.00 10.33 0.00 1.67 0.00 0.00 0.00 0.00 平均时间: vnet1 0.00 10.33 0.00 1.67 0.00 0.00 0.00 0.00 平均时间: docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 平均时间: enxe2925c0465ea 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
扩展用法 1.定期执行性能监控
可以使用 cron
或 systemd
定期执行 sar
命令,收集系统性能数据。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 0 */10 * * * /usr/bin/sar -A >/var/log/sar/sar.`date +\%Y\%m\%d\%H\%M` & [Unit] Description=System Activity Data Collection [Timer] OnCalendar=hourly Persistent=true [Install] WantedBy=timers.target [Service] Type=oneshot ExecStart=/usr/bin/sar -A >/var/log/sar/sar.`date +\%Y\%m\%d\%H\%M`
2.分析性能数据
使用 sar
命令可以分析已保存的性能数据文件。
1 2 3 4 5 sar -u -f /var/log/sar/sar.202305011200 sar -r -f /var/log/sar/sar.202305011200
高级用法 1.生成 HTML 报告
可以使用 isag
工具生成 HTML 格式的性能报告,更直观地展示数据。
1 2 3 4 5 yum install isag isag /var/log/sar/sar.202305011200
2.进程监控
pidstat
命令可以监控特定进程的 CPU、内存等资源使用情况。
1 2 3 4 5 pidstat -u -r -p 1234 pidstat -d
3.使用 sar 命令监控系统性能
通过以上实例和扩展用法,相信你已经对 sysstat
工具集有了更深入的了解。它提供了多个强大的命令,可以全面监控 Linux 系统的资源利用情况,对于系统性能优化和故障排查非常有帮助。如果你还有任何疑问或需要进一步探讨,欢迎随时向我提出。