sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程等。
sar命令的选项很多,下面只列出常用选项:
-A:所有报告的总和。
-u:CPU利用率
-v:进程、I节点、文件和锁表状态。
-d:每一个块设备使用情况。
-r:内存和交换空间。
-g:串口I/O的情况。
-b:查看硬盘读写情况。
-a:文件读写情况。
-c:系统调用情况。
-R:进程的活动情况。
-y:终端设备活动情况。
-w:系统交换活动。
sar -option(以上的选项)
使用sar分为2种情况:1.实时查看 2.历史查看
第一种情况,查看实时的情况,sar默认是每10分钟生成一次数据
实例:
sar -u 3 4(每3秒采集一次,连续采样4次,CPU利用率)
11:36:34 AM CPU %user %nice %system %iowait %steal %idle
11:36:37 AM all 4.51 0.00 10.96 17.97 0.00 66.56
11:36:40 AM all 4.53 0.00 10.91 18.27 0.00 66.29
11:36:43 AM all 4.50 0.00 10.68 19.12 0.00 65.70
11:36:46 AM all 4.53 0.00 10.69 19.76 0.00 65.02
Average: all 4.52 0.00 10.81 18.78 0.00 65.89
第二种情况
实例:
sar -u -f /var/log/sa/sa17(查看本月17号,CPU利用率;/var/log/sa/是存储sar历史记录的默认路径,默认只存放5天)
12:00:01 AM CPU %user %nice %system %iowait %steal %idle
12:10:01 AM all 4.41 0.00 10.72 15.58 0.00 69.29
12:20:01 AM all 4.42 0.00 10.69 15.31 0.00 69.58
12:30:01 AM all 4.41 0.00 10.69 15.47 0.00 69.43
12:40:01 AM all 4.43 0.00 10.70 15.51 0.00 69.36
12:50:01 AM all 4.39 0.00 10.68 15.37 0.00 69.56
01:00:01 AM all 4.40 0.00 10.67 15.63 0.00 69.29
01:10:01 AM all 4.39 0.00 10.72 15.30 0.00 69.59
01:20:01 AM all 4.42 0.00 10.68 15.48 0.00 69.42
01:30:01 AM all 4.40 0.00 10.75 15.54 0.00 69.32
01:40:01 AM all 4.43 0.00 10.69 15.28 0.00 69.59
.........
补充:关于显示参数的具体含义
查看CPU利用率 -u
%user:显示在用户级别(application)运行使用 CPU 总时间的百分比。
%nice:显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。
%system:在核心级别(kernel)运行所使用 CPU 总时间的百分比。
%iowait:显示用于等待I/O操作占用 CPU 总时间的百分比。
%steal:管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。
%idle:显示 CPU 空闲时间占用 CPU 总时间的百分比。
查看SWAP交换 -r
kbmemfree:这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间.
kbmemused:这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间.
%memused:这个值是kbmemused和内存总量(不包括swap)的一个百分比.
kbbuffers和kbcached:这两个值就是free命令中的buffer和cache.
kbcommit:保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap).
%commit:这个值是kbcommit与内存总量(包括swap)的一个百分比.
查看硬盘读写情况 -b
tps:每秒钟物理设备的 I/O 传输总量
rtps:每秒钟从物理设备读入的数据总量
wtps:每秒钟向物理设备写入的数据总量
bread/s:每秒钟从物理设备读入的数据量,单位为块/s
bwrtn/s:每秒钟向物理设备写入的数据量,单位为块/s