sar

sar 是非常强大性能分析命令,通过 sar 命令可以全面的获取系统的 CPU、运行队列、磁盘 I/O、交换区、内存、 cpu 中断、网络等性能数据。

sar 命令行的常用格式:

sar [options] [-A] [-o file] t [n]
在命令行中, n 和 t 两个参数组合起来定义采样间隔和次数, t 为采样间隔, 是必须有的参数, n 为采样次数,是可选的,默认值是 1, -o file 表示将命令结果以二进制格式存放在文件中, file 在此处不是关键字,是文件名。

options 为命令行选项, sar 命令的选项很多,下面只列出常用选项:
-A:所有报告的总和。
-u: CPU 利用率,输出CPU使用情况的统计信息
-v:输出进程、节点、文件和锁表状态。
-p:像是当前系统中指定 CPU 使用信息。
-d:硬盘使用报告,输出每一个块设备的活动信息
-r:显示系统内存的使用情况,输出内存和交换空间的统计信息
-n: 显示网络运行状态。 参数后面可跟 DEV、 EDEV、 SOCK 和 FULL。 DEV 显示网络接口信息, EDEV 显示网络错误的统计数据, SOCK 显示套接字信息, FULL 显示前三参数所以信息。
-q:显示运行队列的大小,它与系统当时的平均负载相同
-B:内存分页情况
-R:显示进程在采样时间内的活动情况。
-g:串口 I/O 的情况。
-b:缓冲区使用情况,显示I/O和传送速率的统计信息
-a:文件读写情况。
-c:系统调用情况,输出进程统计信息,每秒创建的进程数
-R:输出内存页面的统计信息
-y:终端设备活动情况。
-W:系统交换活动信息。

总结

 要判断系统瓶颈问题,有时需几个 sar 命令选项结合起来
 怀疑 CPU 存在瓶颈,可用 sar -u 和 sar -q 等来查看
 怀疑内存存在瓶颈,可用 sar -B、 sar -r 和 sar -W 等来查看
 怀疑 I/O 存在瓶颈,可用 sar -b、 sar -u 和 sar -d 等来查看

1. CPU利用率

sar -p (查看全天)

sar -u 1 10 (1:每隔一秒,10:写入10次)

1.1. CPU输出项说明

输出项 详细说明
CPU all 表示统计信息为所有 CPU 的平均值。
%user 显示在用户级别(application)运行使用 CPU 总时间的百分比。
%nice 显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。
%system 在核心级别(kernel)运行所使用 CPU 总时间的百分比。
%iowait 显示用于等待I/O操作占用 CPU 总时间的百分比。
%steal 管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。
%idle 显示 CPU 空闲时间占用 CPU 总时间的百分比。

2. 内存利用率(内存和交换空间监控)

sar -r (查看全天)

sar -r 1 10 (1:每隔一秒,10:写入10次)

2.1. 内存输出项说明

输出项 详细说明
kbmemfree 这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间。
kbmemused 这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间。
%memused 这个值是kbmemused和内存总量(不包括swap)的一个百分比。
kbbuffers和kbcached 这两个值就是free命令中的buffer和cache。
kbcommit 保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap)。
%commit 这个值是kbcommit与内存总量(包括swap)的一个百分比。 

3. 磁盘I/O

sar -d (查看全天)

sar -d 1 2 (1:每隔一秒,2:写入2次)

3.1. IO输出项说明

输出项 详细说明
tps 每秒从物理磁盘 I/O 的次数.多个逻辑请求会被合并为一个 I/O 磁盘请求,一次传输的大小是不确定的
rd_sec/s 每秒读扇区的次数
wr_sec/s 每秒写扇区的次数
avgrq-sz 平均每次设备 I/O 操作的数据大小(扇区)。
avgqu-sz 磁盘请求队列的平均长度
await 表示平均每次设备I/O操作的等待时间(以毫秒为单位)。 
svctm 表示平均每次设备I/O操作的服务时间(以毫秒为单位)。
%util 表示一秒中有百分之几的时间用于I/O操作。 

4. 网络流量

sar -n DEV (查看全天)

sar -n DEV 1 2 (1:每隔一秒,2:写入2次)

 

4.1. DEV输出项说明

输出项 详细说明
IFACE 就是网络设备的名称。
rxpck/s 每秒钟接收到的包数目。
txpck/s 每秒钟发送出去的包数目。
rxkB/s 每秒钟接收到的字节数。
txkB/s 每秒钟发送出去的字节数。
rxcmp/s 每秒钟接收到的压缩包数目。
txcmp/s 每秒钟发送出去的压缩包数目。
rxmcst/s 每秒钟接收到的多播包的包数目。

5. 内存分页监控

sar -B 5 3

5.1. 输出项说明

输出项 说明
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

每秒清除的页(pgsteal)占总扫描页(pgscank+pgscand)的百分比;

6. I/O 和传送速率监控

sar -b 5 3

6.1. 输出项说明

输出项 说明
tps 每秒钟物理设备的 I/O 传输总量
rtps 每秒钟从物理设备读入的数据总量
wtps 每秒钟向物理设备写入的数据总量。
bread/s 每秒钟从物理设备读入的数据量,单位为 块/s。
bwrtn/s 每秒钟向物理设备写入的数据量,单位为 块/s。

7. 进程队列长度和平均负载状态监控

sar -q 5 3

7.1. 输出项说明

输出项 说明
runq-sz 运行队列的长度(等待运行的进程数)。
plist-sz 进程列表中进程(processes)和线程(threads)的数量。
ldavg-1 最后 1 分钟的系统平均负载(System load average)。
ldavg-5 过去 5 分钟的系统平均负载。
ldavg-15 过去 15 分钟的系统平均负载。

8. 系统交换活动信息监控

sar -W 3 5

8.1. 输出项说明

输出项 说明
pswpin/s 每秒系统换入的交换页面(swap page)数量
pswpout/s 每秒系统换出的交换页面(swap page)数量
原文地址:https://www.cnblogs.com/lvchengda/p/12741194.html