大家好,我是民工哥!
玩 Linux 系统的,都应该知道想要玩转它,就得必须玩转 Linux 的小黑框,简单来说就是必须搞懂 Linux 的常用命令!
所以,完全搞懂一个命令及其参数的用法,你会发现它是非常强大且牛逼的,Linux 系统就有这么一个命令:sar,功能非常强大且牛逼,但是,很多人都没能完全搞懂它。
今天,民工哥就和大家一起来聊一聊这个强大且牛掰的命令:sar。
sar(System Activity Reporter 系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一。
它可以从多方面对系统的资源使用情况进行监控,包括:文件的读写情况、系统调用的使用情况、磁盘 I/O、CPU 效率、内存使用状况、进程活动及 IPC 有关的活动等,然后将系统中的各种性能数据收集起来并显示给用户。
sar 命令来自于 sysstat 这个工具包,如果系统提示 sar 命令不存在,需先安装 sysstat。
[root@CentOS7-1 ~]# sar
-bash: sar: command not found
[root@CentOS7-1 ~]# yum install sysstat -y
[root@CentOS7-1 ~]# sar
语法格式
sar -[ options ] time_interval number_of_tines_to_display
常用参数说明
-A #汇总所有的报告
-a #查看文件读写使用情况
-B #查看附加的缓存的使用情况
-b #查看缓存的使用情况
-c #查看系统调用的使用情况
-d #查看磁盘的使用情况
-g #查看串口的使用情况
-h #查看关于buffer使用的统计数据
-m #查看IPC消息队列和信号量的使用情况
-n #查看命名cache的使用情况
-p #查看调页活动的使用情况
-q #查看平均负载
-R #查看进程的活动情况
-r #查看没有使用的内存页面和硬盘块
-u #查看CPU的利用率
-v #查看进程、i节点、文件和锁表状态
-w #查看系统交换活动状况
-y #查看TTY设备活动状况
sar 命令的一些常用选项和功能如下:
两者都是可以用于监控系统性能的工具,但它们之间存在一些区别。
[root@CentOS7-1 ~]# sar -n DEV 1 3
[root@CentOS7-1 ~]# sar -r
Linux 3.10.0-1127.18.2.el7.x86_64 (CentOS7-1) 01/18/2024 _x86_64_ (1 CPU)
04:28:37 AM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
04:28:55 AM 127328 868356 87.21 0 542496 679228 21.96 350504 364784 24
04:29:00 AM 127328 868356 87.21 0 542516 679228 21.96 350504 364784 44
04:30:01 AM 126700 868984 87.28 0 542644 680828 22.01 350956 364680 0
Average: 127119 868565 87.23 0 542552 679761 21.98 350655 364749 23
输出的结果字段说明
kbmemfree #空闲物理内存量
kbmemused #使用中的物理内存量
%memused #物理内存量使用率
kbbuffers #内核中作为缓冲区使用的物理内存容量
kbcacheed #内核中作为缓存使用的物理内存容量
kbswpfree #交换区的空闲容量
kbswpused #使用中的交换区容量
[root@centos7 ~]# sar -u
Linux 3.10.0-1127.18.2.el7.x86_64 (centos7) 03/28/2021 _x86_64_ (1 CPU)
11:10:02 AM CPU %user %nice %system %iowait %steal %idle
11:20:01 AM all 0.03 0.00 0.18 0.02 0.00 99.77
11:30:01 AM all 0.03 0.00 0.17 0.02 0.00 99.78
Average: all 0.03 0.00 0.18 0.02 0.00 99.77
[root@centos7 ~]# sar -q
Linux 3.10.0-1127.18.2.el7.x86_64 (centos7) 03/28/2021 _x86_64_ (1 CPU)
11:10:02 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
11:20:01 AM 1 108 0.00 0.01 0.05 0
11:30:01 AM 1 108 0.00 0.01 0.05 0
Average: 1 108 0.00 0.01 0.05 0
[root@centos7 ~]# sar -w
Linux 3.10.0-1127.18.2.el7.x86_64 (centos7) 03/28/2021 _x86_64_ (1 CPU)
11:10:02 AM proc/s cswch/s
11:20:01 AM 0.02 19.10
11:30:01 AM 0.03 19.92
11:40:01 AM 0.02 19.45
Average: 0.02 19.49
[root@centos7 ~]# sar -b
Linux 3.10.0-1127.18.2.el7.x86_64 (centos7) 03/28/2021 _x86_64_ (1 CPU)
11:10:02 AM tps rtps wtps bread/s bwrtn/s
11:20:01 AM 0.06 0.00 0.06 0.00 0.74
11:30:01 AM 0.03 0.00 0.03 0.00 0.40
Average: 0.05 0.00 0.05 0.00 0.57
输出字段说明
tps #每秒钟物理设备的 I/O 传输总量
rtps #每秒钟从物理设备读入的数据总量
wtps #每秒钟向物理设备写入的数据总量
bread/s #每秒钟从物理设备读入的数据量,单位为 块/s
bwrtn/s #每秒钟向物理设备写入的数据量,单位为 块/s
[root@CentOS7-1 ~]# sar -d 1 2
Linux 3.10.0-1127.18.2.el7.x86_64 (CentOS7-1) 01/18/2024 _x86_64_ (1 CPU)
04:42:51 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
04:42:52 AM dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
04:42:52 AM dev11-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
04:42:52 AM dev253-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
04:42:52 AM dev253-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
04:42:52 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
04:42:53 AM dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
04:42:53 AM dev11-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
04:42:53 AM dev253-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
04:42:53 AM dev253-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
04:42:53 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
04:42:54 AM dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
04:42:54 AM dev11-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
04:42:54 AM dev253-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
04:42:54 AM dev253-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
输出的信息说明
tps #每秒从物理磁盘 I/O 的次数。
rd_sec/s #每秒读扇区的次数。
wr_sec/s #每秒写扇区的次数。
avgrq-sz #平均每次设备 I/O 操作的数据大小(扇区)。
avgqu-sz #磁盘请求队列的平均长度。
await #从请求操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1 秒=1000 毫秒)。
svctm #系统处理每次请求的平均时间,不包括在请求队列中消耗的时间。
%util #I/O 请求占 CPU 的百分比,比率越大,说明越饱和。
sar命令可以在多个系统之间进行分布式监控,并汇总各个系统的性能数据。用户可以使用“-A”选项来指定要监控的系统,并使用“-f”选项指定数据文件。
sar 命令可以将收集到的数据以表格或图形方式显示,并支持生成自定义报告。用户可以使用“-o”选项指定报告文件名,并使用“-f”选项指定数据文件。
sar命令可以配置报警和通知功能,当系统资源使用超过预设阈值时,自动发送警报或通知给相关人员。
sar 命令可以将收集到的数据导出为文件,以便在其他工具中进行进一步分析。同时,用户也可以从文件中导入数据,以进行历史数据比较或其他用途。
sar命令可以与其他系统管理工具集成,如Nagios、Zabbix等,以实现自动化监控和报警功能。
总之,sar 命令是一个功能强大的监控工具,具有、报告生成、多系统监控、自定义监控选项、报警和通知、数据导出和导入以及与其他工具集成等高级功能。通过合理使用这些功能,用户可以更好地了解系统性能状况并进行相应的优化和调整。
这么牛逼的命令行工具,你确定不整一下?