cpu

每一秒采集一次数据:

监控--cpu篇_第1张图片

r : 当前运行队列中线程的数目.代表线程处于可运行状态,CPU 还未能执行.(值越大系统越忙)

b : 当前进程阻塞并等待IO 请求完成的数目(值越大系统越忙)

swpd 虚拟内存已使用的大小(大于0表示内存不足)

in : 当前中断被处理的数目(值越大系统越忙)

cs : 当前kernel system,发生上下文切换的数目(值越大系统越忙)

free : 空闲的物理内存的大小

buff : buffer缓存大小(buffer是针对数据元文件的缓存,是对数据块处理)

cache : cache缓存大小cacha是对数据文件缓存,是文件系统层的)

si :  每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,通过ps查找最大进程使用的程序

so : 每秒虚拟内存写入磁盘的大小

bi:从块设备读入的数据总量(读磁盘)(KB/S

bo:写入到块设备的数据总量(写磁盘)(KB/S

磁盘读写的时候,这2个值越大(如超出1M),能看到CPUIO等待的值也会越大

in : 系统每秒CPU的中断次数,包括时间中断

cs : 每秒上下文切换次数,可以作为web测压的选项,如果该值过大,表示CPU大部分浪费在上下文切换,没有充分利用cpu资源

us : 用户进程消耗的CPU 时间

sy : 内核进程消耗的CPU时间Sy的值较高时,说明内核消耗的CPU资源很多

wa : IO等待CPU处理的时间。wa的值高时,说明IO等待比较严重,此时磁盘可能有大量的操作

id : CPU处于空闲状态时间百分比


实例一

监控--cpu篇_第2张图片

根据观察值,我们可以得到以下结论:

1.有大量的中断(in) 和较少的上下文切换(cs).这意味着一个单一的进程在产生对设备的大量请求.

2.进一步显示某单个应用,user time(us)经常在85%或者更多.考虑到较少的上下文切换,这个应用应该还在处理器中被处理.

3.运行队列还在可接受的性能范围内,其中有2个地方,是超出了允许限制.

案例二

监控--cpu篇_第3张图片

根据观察值,我们可以得到以下结论:

1.上下文切换数目高于中断数目,说明kernel中相当数量的时间都开销在上下文切换线程.

2.大量的上下文切换将导致CPU 利用率分类不均衡.很明显实际上等待io 请求的百分比(wa)非常高,以及user time百分比非常低(us).

3.因为CPU 都阻塞在IO请求上,所以运行队列里也有相当数目的可运行状态线程在等待执行.


mpstat 工具的使用

参考:http://www.linuxeden.com/html/softuse/20131229/147003.html

# mpstat -P ALL 1

Linux 3.2.0-4-amd64 (vmware1) 04/10/2014 _x86_64_(2 CPU)

04:15:33 AMCPU%usr%nice%sys %iowait%irq%soft%steal%guest%idle

04:15:34 AMall0.000.000.000.000.000.000.000.00100.00

04:15:34 AM00.000.000.000.000.000.000.000.00100.00

04:15:34 AM10.000.000.000.000.000.000.000.00100.00

%user用户进程所使用 CPU 的百分比。用户进程是用于应用程序(如 Oracle 数据库)的非内核进程。

%nice     表示使用 nice 命令对进程进行降级时 CPU 的百分比。nice 命令更改进程的优先级。

%system   表示内核进程使用的 CPU 百分比

%iowait   表示等待 I/O 所使用的 CPU 时间百分比

%irq      表示用于处理系统中断的 CPU 百分比

%soft     表示用于软件中断的 CPU 百分比

%steal : 显示虚拟机管理器在服务另一个虚拟处理器时虚拟CPU处在非自愿等待下花费时间的百分比(注意:虚拟机才有的选项)

%guest : 显示运行虚拟处理器时CPU花费时间的百分比(注意:虚拟机才有的选项)

%idle     CPU 的空闲时间

%intr/s   每秒 CPU 接收的中断总数


cpu篇总结

监控 CPU 性能由以下几个部分组成:

1.检查system的运行队列,以及确定不要超出每个处理器3个可运行状态线程的限制.

2.确定CPU 利用率中user/system比例维持在70/30

3.CPU 开销更多的时间在system mode,那就说明已经超负荷并且应该尝试重新调度优先级

4.I/O 处理得到增长,CPU 范畴的应用处理将受到影响