简介
sar 是一个比较全面的性能监控工具,包括cpu、内存、磁盘和网络等信息,并且该命令会每10分钟自动保存一次硬件资源使用情况。如果在执行某方面的性能测试时忘记监控,那么 sar 可以帮助我们查看历史记录。
文章目录如下
1. 语法
1.1. 常用参数
2. cpu监控
2.1. 监控系统负载
2.2. 监控CPU利用率
2.3. 监控上下文切换
3. 内存监控
3.1. 监控物理内存
3.2. 监控内存分页
3.3. 监控系统交换活动信息
4. 磁盘监控
4.1. 监控磁盘使用情况
4.2. 监控磁盘 I/O
5. 网络监控
6. 历史监控
7. 总结
- 通过 sar -q 监测系统的运行队列和负载情况。它提供了有关系统中等待运行的进程数量、平均负载以及执行队列长度等信息。通过分析这些数据,可以评估系统的负载状态,帮助排查性能问题,并合理调整系统资源以优化性能。

runq-sz :运行队列长度(正在等待 CPU 执行的进程数)
plist-sz :进程队列长度(等待 CPU 时间片的进程数)
ldavg-1 :过去1分钟负载平均值
ldavg-5 :过去5分钟负载平均值
ldavg-15:过去15分钟负载平均值
blocked :阻塞进程数量(目前正在阻塞等待某些事件的进程数量)
- 通过 sar -u 来统计系统的CPU使用情况,包括CPU利用率、用户态、内核态、空闲、等待I/O等,以帮助评估系统CPU负载和性能状况。

툙 :用户空间占用的CPU
%nice :改变过优先级进程占用的CPU
%system:内核空间占用的CPU
%iowait :CPU 等待 IO 的占比(若该占比较高,硬盘可能存在 I/O 瓶颈)
%steal :管理程序(hypervisor)为另一个虚拟进程提供服务而等待的虚拟CPU占比
%idle :空闲的CPU(若空闲较大,但系统响应慢,有可能CPU等待内存分配,应适当增加内存容量;若空闲持续低于 1%,则系统的CPU处理能力较低)

proc/s :每秒新建进程的数量。
cswch/s:每秒上下文切换的次数。
- proc/s 表示每秒钟新创建的线程和进程的总数,可以反映系统的任务调度情况。较高的数值可能表示系统正在频繁地创建新的进程或线程。
- 上下文切换是指在多任务操作系统中,由于 CPU 资源的切换,系统从一个进程或线程切换到另一个进程或线程时所进行的操作。上下文切换在多任务系统中是必要的,但频繁的上下文切换可能会影响系统的性能。 可以衡量系统的调度效率和负载情况。较高的值可能表示系统正在频繁进行进程切换,这可能是由于进程数量过多或其他资源限制引起的。
- 通过 sar -r 可以查看内存使用情况,包括内存利用率、可用内存、缓存和缓冲区、页面交换等,以帮助评估系统内存压力和性能状况。

- 默认单位:KB
kbmemfree :空闲的物理内存
kbmemused:已使用的物理内存
%memused:物理内存使用率
kbbuffers :已使用的缓冲区大小
kbcached :已缓存的文件系统大小
kbcommit :保证当前系统所需内存,为了确保不溢出而需要的内存(RAM + SWAP)
%commit :可用内存占比(是可用,而不是空闲)
- 通过观察页面交换的频率和量,可以评估系统的内存压力情况。较高的页交换率可能表明系统正在经历内存紧缺的情况。

pgpgin/s :每秒从磁盘或swap置换到内存的字节数(单位 KB)
pgpgout/s:每秒从内存置换到磁盘或swap的字节数(单位 KB)
fault/s :系统每秒产生的缺页数(major + minor)
majflt/s :每秒产生的主缺页数
pgfree/s :每秒被放入空闲队列的页个数
pgscank/s:每秒被kswapd扫描的页个数
pgscand/s:每秒被直接扫描的页个数
pgsteal/s :每秒从cache中被清除来满足内存需要的页个数
%vmeff : 清除页占总扫描页的百分比
- sar -W 可以提供有关系统内存交换的重要信息,有助于评估系统内存压力和性能状况。当和的值较高或持续增长时,可能需要进一步分析和优化系统的内存使用情况,以避免过度的页面交换和性能瓶颈。

pswpin/s :每s平均发生的进程页面交换到内存的次数
pswpout/s:每s平均发生的进程页面从内存交换出去的次数
- pswpin/s 衡量了进程被从磁盘交换到内存中的频率。较高的值可能意味着系统正经历内存压力,并且需要经常从磁盘加载进程页面到内存中,这可能导致性能下降。
- pswpout/s 表示了进程页面从内存中被交换到磁盘的频率。较高的值可能表示系统内存不足,需要将不常用的进程页面交换到磁盘以释放内存空间。
- 通过 sar -d 来监测和统计系统的磁盘活动情况。它提供了关于磁盘I/O操作的信息,包括读取和写入的速率、传输字节数、I/O请求的等待时间等。通过查看这些数据,可以评估磁盘的使用情况、检测性能瓶颈和磁盘故障,并进行必要的优化和调整。

DEV :块设备名
tps :每秒 I/O 数
rd_sec/s:每秒读取扇区数
wr_sec/s:每秒写入扇区数
avgrq-sz:平均每次 I/O 操作的数据大小(扇区)
avgqu-sz:磁盘请求队列的平均长度(此值越低时,设备利用率较高)
await :I/O 请求队列的平均等待时间(单位 ms)
svctm :I/O 服务处理时间
ֹ :I/O 请求占 CPU 百分比,比例越大说明越饱和;接近 100% 时表示带宽已经占满
- sar -b 用于监测磁盘I/O活动情况。它提供了有关硬盘的传输信息,包括传输速率、传输字节数等。

tps :每秒物理设备的 I/O 传输总量
rtps :每秒从物理设备读入的数据总量
wtps :每秒从物理设备写入的数据总量
bread/s :每秒从物理设备读入的数据量(单位 块/s)
bwrtn/s :每秒从物理设备写入的数据量(单位 块/s)

IFACE :网卡名
rxpck/s :每秒接收的包
txpck/s :每秒发送的包
rxkB/s :每秒接收的字节数(单位 KB)
txkB/s :每秒发送的字节数(单位 KB)
rxcmp/s :每秒接收的压缩包
txcmp/s :每秒发送的压缩包
rxmcst/s:每秒接收的多播包
- 若操作系统存在 sar 命令,那么系统将自动保存 30 天监控情况
- 目录为:/var/log/sa/*,如果没开机则无法监控
- 监控文件以每 10 分钟保存一次


注意:系统每10分钟保存一次,所以即使指定每 1 秒输出一次,也是按每 10 分钟输出一次
sar 是一个比较全面的性能监控命令,分析cpu瓶颈可以根据系统负载情况、cpu利用率和上下文切换次数来判断cpu是否出现瓶颈。如果cpu出现瓶颈后,需要查找影响瓶颈的进程,sar 无法做到,这需要其他命令配合使用(top、pidstat)。查看内存压力可以通过 sar 查看物理内存使用情况、内存分页、交换信息等方式来观察,如果需要查找使用内存最大的进程还是需要 top 或 pidstat 来查看。分析磁盘或网络瓶颈都可以使用 sar,支持磁盘读写、磁盘利用率、网络速率等方式监控。
top 命令的用法:https://blog.csdn.net/m0_/article/details/
pidstat 命令的用法:https://blog.csdn.net/m0_/article/details/
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/9115.html