您的位置:首页 > 运维架构 > Linux

基于linux服务器的性能分析与优化(四)

2012-07-06 19:05 393 查看

10.6.2 sar命令

sar命令可以全面获取系统的CPU、运行队列、磁盘IO、分页(交换区)、内存、CPU中断、网络等性能数据

sar命令的语法如下:

sar [options] [ -o filename] [interval [count] ]


各个选项及参数的含义如下:

options,命令行选项,下面列出一些常用选项

-A 显示系统所有资源设备(CPU、内存、磁盘)的运行情况

-u 显示系统所有CPU在才有时间内的负载状态

-P 显示当前系统中指定CPU的使用情况

-d 显示系统所有硬件设备在采样时间内的使用状况

-r 显示系统内存在采样时间内的使用情况

-b 显示缓冲区在采样时间内的使用情况

-v 显示进程、文件、节点和锁表状态

-n 显示网络运行状态。参数后面可以跟DEV、EDEV、SOCK和FULL。DEV显示网络接口信息,EDEV显示网络错误的统计数据,SOCK显示套接字信息,FULL显示前三参数的所有信息。

-q显示了运行队列的大小,它与系统当时的平均负载相同

-R显示进程在采样时间内的活动情况

-y显示终端设备在采样时间内的活动情况

-w 显示系统交换活动在采样时间内的状态

-o filename将命令结果以二进制格式存放在文件中,filename为存储文件名

interval 采样间隔

count 采样次数,是可选参数

例如, 要查看系统CPU整体负载情况,每3秒统计一次,统计5次,

sar -u 3 5


系统的CPU计数是从0开始的,如果要查看第二个CPU的运行负载,使用

sar -P 1 3 5


查看系统磁盘的读写性能,使用

sar -d 3 5


查看系统内存的使用情况、网络运行状态,分别使用

sar -r 5 2


sar -n DEV 5 3


下面是sar命令对某个系统的cpu的统计输出

$ sar -u 3 5
Linux 2.6.9_7-5-0-0 (tc-map-as01.tc.baidu.com)  07/06/2012

06:56:26 PM       CPU     %user     %nice   %system   %iowait     %idle
06:56:29 PM       all      1.62      0.00      1.04      0.00     97.33
06:56:32 PM       all      1.71      0.00      0.75      0.00     97.54
06:56:35 PM       all      1.71      0.00      1.00      0.00     97.29

06:56:35 PM       CPU     %user     %nice   %system   %iowait     %idle
06:56:38 PM       all      1.38      0.00      0.88      0.00     97.75
06:56:41 PM       all      1.67      0.00      0.88      0.00     97.46
Average:          all      1.62      0.00      0.91      0.00     97.48


上面每项的输出解释如下:

* %user显示了用户进程消耗的CPU时间百分比

* %nice显示了运行正常进程所耗的CPU时间百分比

* %system显示了系统进程消耗的CPU时间百分比

* %iowait显示了IO等待占用的CPU时间百分比

* %steal显示在内存相对紧张的情况下pagein强制对不同的页面进行steal操作

* %idle显示了CPU在空闲状态的时间百分比

每项的输出都非常直观,并且最后一行的average是汇总行,即统计平均值

需要注意的是,第一行的统计中是包含了sar本身的统计消耗,所以%user列会偏高一点,不过不会对统计结果产生太大影响。

在一个多CPU的系统中,如果程序使用了单线程,会出现一个现象:CPu整体使用率不高,但是系统应用响应很慢,这是因为单线程只使用一个CPU,导致这个CPU占用率为100%,无法处理其他请求,而其他的CPU却闲置。针对这个问题,可以分开查询系统的CPU,使用sar -P 统计每个CPU的使用情况。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: