标签:
CPU使用率分为
系统态CPU使用率高意味着共享资源有竞争或者IO设备之间有大量的交互。
目标:理想情况应用达到最高性能和扩展性时,它的系统态CPU使用率为0%,提供应用性能和扩展性一个目标是尽可能降低系统态CPU使用率
对于计算密集型应用
停滞:CPU等待内存中的数据,操作系统工具仍然报告CPU繁忙,当指令所用的操作数据不在寄存器或者缓存中的就会发生。
目标:减少停滞或者改善CPU高速缓存使用率,从而减少CPU在等待内存数据时浪费的时钟周期
观察CPU使用率工具
vmstat:只能查看整体CPU使用情况
mpstat:处理相关统计信息
mpstat [ -P { cpu | ALL } ] [ -V ] [ interval [ count ] ]
查看所有CPU统计信息,每2秒一次
作用:监控CPU调度程序运行队列用于分辨系统是否满负荷。
运行队列:那些已经准备好运行,正等待可用CPU的轻量级进程。
如果准备运行的轻量级进程数超过系统所能处理的上限,运行队列就会很长。当系统运行队列等于虚机处理器个数的时候,用户不会明显感觉到性能下降。(虚拟处理器就是系统硬件线程个数.Runtime.availableProcessors()返回值)。运行队列长度达到虚拟处理4倍或是更多时,系统响应非常迟缓。
指导原则:如果在很长时间,运行队列的长度一直超过虚拟处理器个数1倍,需要关注,如果很长一段时间,运行队列长度达到虚拟处理器个数的3-4倍或更高,需要立即引起注意或采取行动。
解决方式
线上vmstat 1观察CPU队列情况
procs
mpstat查看CPU个数以及CPU使用情况,系统负载略高
CPU相关监控以及介绍告一段落。
参考:
http://linuxcommand.org/man_pages/vmstat8.html
标签:
原文地址:http://www.cnblogs.com/yanbit/p/4778138.html