sar 可以从多方面对系统的活动进行报告。包括:文件的读写情况,系统调用的使用情况,磁盘I/0,CPU效率,内存使用状况,进程活动有关的活动等。
sar命令参数:
-A:所有报告的总和
-b: 显示I/O和传递速率的统计
-B:显示换页状态
-d:输出每一块磁盘的使用信息
-e: 设置显示报告的结束时间
-f: 从文件读取报告
-p:报告每个CPU的状态
-R:显示内存状态
-u: 输出CPU使用情况和统计信息
-w: 显示交换分区的状态
-x:显示给定进程的状态
-r:报告内存利用率的统计信息
sar -u -f sa17 # 统计CPU的使用情况
%user: 用户空间CPU使用率
%nice: 改变过优先级的进程的CPU使用率
%system: 内核空间的CPU使用率
%iowait: CPU等待IO的百分比
%steal: 虚拟机的虚拟机CPU使用的CPU
%idle: 空闲的CPU
以上 主要关注 %iowait和%idle,%iowait过高表示存在I/O瓶颈,即磁盘I/O无法满足业务需求,如果%idle过低表示CPU的使用率存在瓶颈,需要结合内存来判断CPU的瓶颈
将统计结果放到文件中
sar -u -o /tmp/1.txt 2 3 #保存之文件,保存后的文件是二进制的,无法使用vim和cat直接打开
sar -u -f /tmp/1.txt #从二进制文件读取
sar -q # 查看平均负载
runq-sz 运行队列的长度,(等待运行的进程数,每核的CP不能超过3个)
plist-sz 进程列表中的进程(processes)和 线程数(threads)的数量
ldavg-1 最后1分钟的CPU平均负载
ldavg-5 最后5分钟的CPU平均负载
ldavg-15 最后15分钟的CPU平均负载
sar -r # 查看内存的使用情况
kbmemfree: 空闲物理内存大小
kbmemused: 使用中的物理内存大小
%memused: 物理内存使用率
kbbuffers 内核中作为缓冲区使用的物理内存大小,kbbuffers和kbcached就是free命令中的buffers和cache
kbcommit: 保证当前系统运行所需的最小内存
commit: 这个是kbcommit 与内存总量的一个百分比的值
sar -W # 查看系统swap分区的统计信息
pswapin/s: 每秒从交换分区到系统的交换页面的数量
pswapout/s: 每秒从系统交换到swap的交换页面的数量
sar -b # 查看I/O和传递速率的统计信息
tps: 磁盘每秒钟的I/O总数 , 等于iostat 中的tps
rtps: 每秒钟从读取的IO总数
wtps: 每秒钟从写入到磁盘的IO总数
bread/s 每秒钟从磁盘读取的块总数
bwrtn/s: 每秒钟写入到磁盘的块总数