
1
sar 是什么
sar 命令是分析 linux 系统性能的重要工具之一,通过该命令可以全面地获取系统的 CPU、内存、网络、磁盘I/O、分区(交换区)、CPU 中断等性能数据。
sar命令包含在sysstat软件包内。可以下载软件包编译安装,也可以通过yum install -y sysstat 或者 apt-get install sysstat 安装。
2
sar 如何使用
sar 功能强大,参数也比较多,但不要害怕,其实是有规律的。
sar [options] [-o filename] [interval] [count]options:为命令行选项,不填默认是 -u ,sar 命令提供的选项很多,下面会详细介绍。
-o filename:其中,filename 为文件名,此选项表示将命令结果以二进制格式存放在文件中;
interval:表示采样间隔时间;
count:表示采样次数;
例如我们输入下面命令
# sar 1 1
Linux 3.10.0-1160.el7.x86_64 (192-168-249-10) 10/19/2022 _x86_64_ (2 CPU)
02:43:15 PM CPU %user %nice %system %iowait %steal %idle
02:43:16 PM all 4.10 0.00 2.56 0.00 0.00 93.33
Average: all 4.10 0.00 2.56 0.00 0.00 93.33我们知道 option 默认是 -u,代表 cpu 监控情况。1 1 就表示每1秒采样一次,一共采集1次。
| CPU | all 表示统计所有cpu平均值 |
| %user | 表示cpu在用户态运行时间百分比 |
| %nice | 改变过优先级的进程的cpu使用率 |
| %system | cpu在内核态运行时间百分比 |
| %iowait | cpu等待io操作占用时间百分比 |
| %steal | 管理程序为另一个虚拟进程提供服务等待虚拟cpu百分比 |
| %idle | 显示cpu空闲时间占用cpu总时间百分比 |
如果不设定采样次数,则会一直采样输出,直到ctrl+c退出,例如
# sar -q 1
Linux 3.10.0-1160.el7.x86_64 (192-168-249-10) 10/19/2022 _x86_64_ (2 CPU)
02:46:29 PM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
02:46:30 PM 0 426 0.14 0.24 0.24 0
02:46:31 PM 0 426 0.14 0.24 0.24 0
02:46:32 PM 0 426 0.14 0.24 0.24 0
02:46:33 PM 0 426 0.13 0.24 0.23 0
02:46:34 PM 0 426 0.13 0.24 0.23 0
02:46:35 PM 3 426 0.13 0.24 0.23 0
^C
02:46:35 PM 2 426 0.13 0.24 0.23 0
Average: 1 426 0.13 0.24 0.23 0-q 参数表示进程长度和CPU平均负载状态监控。输出项含义如下
| runq-sz | 运行队列的长度(等待运行的进程数) |
| plist-sz | 进程列表中进程和线程数量 |
| ldavg-1 | 最后1分钟cpu平均负重 |
| ldavg-5 | 最后5分钟cpu平均负重 |
| ldavg-15 | 最后15分钟cpu平均负重 |
3
sar 内存监控
查看内存和swap空间使用情况可以使用-r参数
# sar -r 1 1
Linux 3.10.0-1160.el7.x86_64 (192-168-249-10) 10/19/2022 _x86_64_ (2 CPU)
02:59:50 PM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
02:59:51 PM 76468 1786564 95.90 2104 823456 3379964 181.42 1085912 440772 4
Average: 76468 1786564 95.90 2104 823456 3379964 181.42 1085912 440772 4| kbmemfree | 不包括buffer和cache的内存空间 |
| kbmemused | 包括buffer和cache的内存空间 |
| %memused | kbmemused占内存总量百分比 |
| kbbuffers和kbcached | buffer和cache |
| kbcommit | 保证内存不溢出需要的内存值 |
sar -W 1 1 可以查看 SWAP 交换的统计信息
# sar -W 1 1
Linux 3.10.0-1160.el7.x86_64 (192-168-249-10) 10/19/2022 _x86_64_ (2 CPU)
03:06:55 PM pswpin/s pswpout/s
03:06:56 PM 0.00 0.00
Average: 0.00 0.004
sar 查看磁盘使用情况
# sar -b 1 1
Linux 3.10.0-1160.el7.x86_64 (192-168-249-10) 10/19/2022 _x86_64_ (2 CPU)
03:10:48 PM tps rtps wtps bread/s bwrtn/s
03:10:49 PM 1.00 0.00 1.00 0.00 8.00
Average: 1.00 0.00 1.00 0.00 8.00| tps | 每秒物理设备的I/O传输总量 |
| rtps | 每秒从物理设备读取的数据总量 |
| wtps | 每秒向物理设备写入的数据总量 |
| bread/s | 每秒从物理设备读取的数据总量,单位是块/s |
| bwrtn/s | 每秒向物理设备写入的数据总量,单位是块/s |
# sar -dp 1 1
Linux 3.10.0-1160.el7.x86_64 (192-168-249-10) 10/19/2022 _x86_64_ (2 CPU)
03:14:22 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
03:14:23 PM sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
03:14:23 PM sr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
03:14:23 PM centos-root 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
03:14:23 PM centos-swap 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
Average: sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: sr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: centos-root 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: centos-swap 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00参数-p可以打印出sda、sdb等磁盘设备名称,如果不用参数-p,设备节点则有可能是dev8-0、dev253-0这种。
5
sar 查看网络情况
# sar -n DEV 1 1
Linux 3.10.0-1160.el7.x86_64 (192-168-249-10) 10/19/2022 _x86_64_ (2 CPU)
03:17:09 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
03:17:10 PM cni0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
03:17:10 PM vethfaed83a9 0.00 0.00 0.00 0.00 0.00 0.00 0.00
03:17:10 PM lo 45.00 45.00 5.18 5.18 0.00 0.00 0.00
03:17:10 PM veth391e1aff 0.00 0.00 0.00 0.00 0.00 0.00 0.00
03:17:10 PM ens33 1.00 1.00 0.06 0.18 0.00 0.00 0.00
03:17:10 PM docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
Average: cni0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: vethfaed83a9 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: lo 45.00 45.00 5.18 5.18 0.00 0.00 0.00
Average: veth391e1aff 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: ens33 1.00 1.00 0.06 0.18 0.00 0.00 0.00
Average: docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00FACE:网络设备的名称;
rxpck/s:每秒钟接收到的包数目
txpck/s:每秒钟发送出去的包数目
rxbyt/s:每秒钟接收到的字节数
txbyt/s:每秒钟发送出去的字节数
rxcmp/s:每秒钟接收到的压缩包数目
txcmp/s:每秒钟发送出去的压缩包数目
txmcst/s:每秒钟接收到的多播包的包数目
6
总结
下面是 sar 命令的常用参数及功能描述
| -A | 显示系统所有资源设备(CPU、内存、磁盘)的运行状况。 |
| -u | 显示系统所有 CPU 在采样时间内的负载状态。(默认) |
| -P | 显示当前系统中指定 CPU 的使用情况。 |
| -d | 显示系统所有硬盘设备在采样时间内的使用状态。 |
| -r | 显示系统内存在采样时间内的使用情况。 |
| -b | 显示缓冲区在采样时间内的使用情况。 |
-B | 显示页交换速率在采样时间内的使用情况。 |
| -v | 显示 inode 节点、文件和其他内核表的统计信息。 |
| -n | 显示网络运行状态,此选项后可跟 DEV(显示网络接口信息)、EDEV(显示网络错误的统计数据)、SOCK(显示套接字信息)和 FULL(等同于使用 DEV、EDEV和SOCK)等,有关更多的选项,可通过执行 man sar 命令查看。 |
| -q | 显示运行列表中的进程数、进程大小、系统平均负载等。 |
| -R | 显示进程在采样时的活动情况。 |
| -y | 显示终端设备在采样时间的活动情况。 |
| -w | 显示系统交换活动在采样时间内的状态。 |
| -W | 显示swap交换活动在采样时间内的状态。 |
| -f | 显示sa文件记录信息中的系统状态。 |
点个赞

再走吧
sar是Linux系统中用于性能分析的重要工具,它能够提供CPU、内存、磁盘I/O、网络等多方面的监控数据。本文详细介绍了sar命令的使用方法,包括默认的CPU监控、进程负载、内存使用、磁盘活动以及网络状态的监测。通过sar,管理员可以轻松了解系统运行状况并进行问题排查。
7133

被折叠的 条评论
为什么被折叠?



