sar(System Activity Reporter系统活动情况报告)是Linux系统最全面的系统性能分析工具之一,可以从多方面了解系统性能状况,包括CPU使用效率、文件系统读写情况、磁盘I/O、内存使用、进程活动等。
命令格式:sar [options] [-A] [-o file] t [n]
-A:所有报告的总和
-o:把结果以二进制形式保存到文件中
t:采样的时间间隔
n:采样的次数,默认为1
option的常用选项如下:
-u:输出CPU的相关统计信息
-d:输出每个块设备的统计信息
-q:输出队列长度和平均负载统计
-r:输出内存和交换分区的统计信息
-b:输出I/O和传输速率的统计信息
-a:显示文件的读写情况
-c:输出进程统计信息,每秒创建的进程数
-R:输出内存页面的统计信息
-y:设备终端的活动情况
-w:输出系统交换活动信息
-v:输出inode、文件和其他内核表的统计信息
示例:
查看进程队列长度和平均负载:
[root@email ~]# sar -q 5 3
Linux 2.6.32-642.el6.i686 (email.benet.com) 04/02/2017 _i686_(1 CPU)
11:35:34 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15
11:35:39 AM 0 184 1.45 0.78 0.61
11:35:44 AM 0 184 1.33 0.77 0.61
11:35:49 AM 0 184 1.31 0.77 0.61
Average: 0 184 1.36 0.77 0.61
runq-sz:运行队列长度(等待运行的进程数)
plist-sz:进程列表中进程和线程的数量
后面三段表示最近1分钟、5分钟、15分钟的平均负载
查看设备使用情况
sar -d 5 3 -p #每5秒采样一次,连续采样3次
Linux 2.6.32-642.el6.x86_64 (localhost.localdomain) 01/23/2017 _x86_64_(2 CPU)
12:21:07 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
12:21:12 PM sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
12:21:12 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
12:21:17 PM sda 1.20 0.00 12.80 10.67 0.00 0.50 0.17 0.02
12:21:17 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
12:21:22 PM sda 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.40 0.00 4.27 10.67 0.00 0.50 0.17 0.01
tps:每秒从物理磁盘I/O的次数.多个逻辑请求会被合并为一个I/O磁盘请求,一次传输的大小是不确定的.
rd_sec/s:每秒读扇区的次数.
wr_sec/s:每秒写扇区的次数.
avgrq-sz:平均每次设备I/O操作的数据大小(扇区).
avgqu-sz:磁盘请求队列的平均长度.
await:从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1秒=1000毫秒).
svctm:系统处理每次请求的平均时间,不包括在请求队列中消耗的时间.
%util:I/O请求占CPU的百分比,比率越大,说明越饱和.
1) avgqu-sz 的值较低时,设备的利用率较高。
2) 当%util的值接近 1% 时,表示设备带宽已经占满。
查看内存和交换空间
[root@email ~]# sar -r 2 3
Linux 2.6.32-642.el6.i686 (email.benet.com) 04/02/2017 _i686_(1 CPU)
11:51:49 AM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit
11:51:51 AM 16124 494472 96.84 82688 172652 506100 32.98
11:51:53 AM 16124 494472 96.84 82688 172652 506100 32.98
11:51:55 AM 16008 494588 96.86 82692 172656 506100 32.98
Average: 16085 494511 96.85 82689 172653 506100 32.98
kbmemfree:这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间.
kbmemused:这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间.
%memused:这个值是kbmemused和内存总量(不包括swap)的一个百分比.
kbbuffers和kbcached:这两个值就是free命令中的buffer和cache.
kbcommit:保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap).
%commit:这个值是kbcommit与内存总量(包括swap)的一个百分比.
查看I/O和传输速率
[root@email ~]# sar -b 2 3
Linux 2.6.32-642.el6.i686 (email.benet.com) 04/02/2017 _i686_(1 CPU)
11:54:26 AM tps rtps wtps bread/s bwrtn/s
11:54:28 AM 4.04 0.00 4.04 0.00 60.61
11:54:30 AM 4.55 0.00 4.55 0.00 40.40
11:54:32 AM 0.00 0.00 0.00 0.00 0.00
Average: 2.86 0.00 2.86 0.00 33.61
tps:每秒钟物理设备的 I/O 传输总量
rtps:每秒钟从物理设备读入的数据总量
wtps:每秒钟向物理设备写入的数据总量
bread/s:每秒钟从物理设备读入的数据量,单位为 块/s
bwrtn/s:每秒钟向物理设备写入的数据量,单位为 块/s
总结:
查看CPU性能信息,可通过sar -u 或 sar -q来查看
查看内存信息,可通过sar -r
查看I/O信息:可通过sar -b 或 sar -d
本文转自 zengwj1949 51CTO博客,原文链接:http://blog.51cto.com/zengwj1949/1912551