cpu篇html
每一秒采集一次数据:linux
r : 当前运行队列中线程的数目.表明线程处于可运行状态,但CPU 还未能执行.(值越大系统越忙)web
b : 当前进程阻塞并等待IO 请求完成的数目(值越大系统越忙)数据库
swpd :虚拟内存已使用的大小(大于0表示内存不足)缓存
in : 当前中断被处理的数目(值越大系统越忙)ide
cs : 当前kernel system中,发生上下文切换的数目(值越大系统越忙)工具
free : 空闲的物理内存的大小性能
buff : buffer缓存大小(buffer是针对数据元文件的缓存,是对数据块处理)spa
cache : cache缓存大小(cacha是对数据文件缓存,是文件系统层的)线程
si : 每秒从磁盘读入虚拟内存的大小,若是这个值大于0,表示物理内存不够用或者内存泄露了,经过ps查找最大进程使用的程序
so : 每秒虚拟内存写入磁盘的大小
bi:从块设备读入的数据总量(读磁盘)(KB/S)
bo:写入到块设备的数据总量(写磁盘)(KB/S)
磁盘读写的时候,这2个值越大(如超出1M),能看到CPU在IO等待的值也会越大。
in : 系统每秒CPU的中断次数,包括时间中断
cs : 每秒上下文切换次数,能够做为web测压的选项,若是该值过大,表示CPU大部分浪费在上下文切换,没有充分利用cpu资源
us : 用户进程消耗的CPU 时间,
sy : 内核进程消耗的CPU时间,Sy的值较高时,说明内核消耗的CPU资源不少
wa : IO等待CPU处理的时间。wa的值高时,说明IO等待比较严重,此时磁盘可能有大量的操做
id : CPU处于空闲状态时间百分比
实例一
根据观察值,咱们能够获得如下结论:
1.有大量的中断(in) 和较少的上下文切换(cs).这意味着一个单一的进程在产生对设备的大量请求.
2.进一步显示某单个应用,user time(us)常常在85%或者更多.考虑到较少的上下文切换,这个应用应该还在处理器中被处理.
3.运行队列还在可接受的性能范围内,其中有2个地方,是超出了容许限制.
案例二
根据观察值,咱们能够获得如下结论:
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 范畴的应用处理将受到影响