sar(System Activity Reporter)是目前最全面的系统分析工具,可以全面的测评Linux系统的文件的读写、系统调用、I/O、CPU效率、内存使用、进程活动及IPC有关的参数。
Linux sar命令安装方法:一般我们使用的VPS安装包中是没有安装该组件的。
yum-yinstallsysstat
上述命令在centos中安装。安装后我们需要等待一段时间才可以有数据反映出来。使用下面的命令格式。
sar [options] [-A] [-o file] t [n]
其中:
t为采样间隔,n为采样次数,默认值是1;
-o file表示将命令结果以二进制格式存放在文件中,file 是文件名。
options 为命令行选项,sar命令常用选项如下:
-A:所有报告的总和
-u:输出CPU使用情况的统计信息
-v:输出inode、文件和其他内核表的统计信息
-d:输出每一个块设备的活动信息
-r:输出内存和交换空间的统计信息
-b:显示I/O和传送速率的统计信息
-a:文件读写情况
-c:输出进程统计信息,每秒创建的进程数
-R:输出内存页面的统计信息
-y:终端设备活动情况
-w:输出系统交换活动信息
范例之一,CPU性能测试:每10秒采样一次,连续采样3次
[[email protected] /]# sar -u 10 3 Linux 3.6.5-linode47 (li413-187) 12/25/2012 _i686_ (4 CPU) 02:28:14 PM CPU %user %nice %system %iowait %steal %idle 02:28:24 PM all 0.00 0.00 0.03 0.00 0.00 99.97 02:28:34 PM all 0.00 0.00 0.00 0.00 0.00 100.00 02:28:44 PM all 0.00 0.00 0.00 0.00 0.00 100.00 Average: all 0.00 0.00 0.01 0.00 0.00 99.99
说明内容:
CPU:all 表示统计信息为所有 CPU 的平均值。
%user:显示在用户级别(application)运行使用 CPU 总时间的百分比。
%nice:显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。
%system:在核心级别(kernel)运行所使用 CPU 总时间的百分比。
%iowait:显示用于等待I/O操作占用 CPU 总时间的百分比。
%steal:管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。
%idle:显示 CPU 空闲时间占用 CPU 总时间的百分比。
1. 若 %iowait 的值过高,表示硬盘存在I/O瓶颈
2. 若 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量
3. 若 %idle 的值持续低于1,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是CPU。
范例之二,I/O和传送速率监控:每10秒采样一次,连续采样3次,报告缓冲区的使用情况
[[email protected] /]# sar -b 10 3 Linux 3.6.5-linode47 (li413-187) 12/25/2012 _i686_ (4 CPU) 02:34:59 PM tps rtps wtps bread/s bwrtn/s 02:35:09 PM 0.00 0.00 0.00 0.00 0.00 02:35:19 PM 0.00 0.00 0.00 0.00 0.00 02:35:29 PM 0.00 0.00 0.00 0.00 0.00 Average: 0.00 0.00 0.00 0.00 0.00
输出项说明:
tps:每秒钟物理设备的 I/O 传输总量
rtps:每秒钟从物理设备读入的数据总量
wtps:每秒钟向物理设备写入的数据总量
bread/s:每秒钟从物理设备读入的数据量,单位为 块/s
bwrtn/s:每秒钟向物理设备写入的数据量,单位为 块/s
范例之三,进程队列长度和平均负载状态监控:每10秒采样一次,连续采样3次,监控进程队列长度和平均负载状态
[[email protected] /]# sar -q 10 3 Linux 3.6.5-linode47 (li413-187) 12/25/2012 _i686_ (4 CPU) 02:36:46 PM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 02:36:56 PM 0 98 0.00 0.01 0.05 02:37:06 PM 0 98 0.00 0.01 0.05 02:37:16 PM 0 98 0.00 0.01 0.05 Average: 0 98 0.00 0.01 0.05
输出项说明:
runq-sz:运行队列的长度(等待运行的进程数)
plist-sz:进程列表中进程(processes)和线程(threads)的数量
ldavg-1:最后1分钟的系统平均负载(System load average)
ldavg-5:过去5分钟的系统平均负载
ldavg-15:过去15分钟的系统平均负载
因为我用的Linode测试的,这台机器上没有安装网站,所以数据比较小,这里只演示命令,没有对VPS性能进行测评。