CPU的参数详解:
us(user time)
表示CPU执行用户进程的时间,包括ni时间。通常我们只看这项。
sy(system time)
表示CPU在内核运行时间,包括IRQ和softirq时间,系统CPU占用率高,表明系统某部份存在瓶颈,通常值越低越好。
wa(waiting time)
CPI在等待I/O操作完成所花费的时间,系统不应该花费大量时间来等待I/O操作,否则说明I/O存在问题。
id(idle time)
系统处于空闲期,等待进程运行。
ni(nice time)
系统调整进程优先级所花费的时间。
hi(hard irq time)
系统处理硬中断所花费的时间。
si(softirq time)
系统处理软件中断所花费的时间。
st(steal time)
被强制等待虚拟CPU的时间,此时hypervisor在为另一个虚拟处理器服务。
Processor/% Processor Time
阀值:处理器的阀值一般设为85%。
含义:表示处理器活动的主要指标。高数值并不一定是坏事,但是如果其他处理器相关的计数器(比如% Privileged Time 或者 Processor Queue Length)线性增加的话,高CPU使用率就值得调查了。
Processor/% Privileged Time
阀值:如果数值持续大于75%就表示存在瓶颈。
含义:表示一个线程在特权模式下所使用的时间比例。当你的程序调用操作系统的方法(比如文件操作,网络I/O或者分配内存),这些操作系统的方法是在特权模式下运行的。
Processor/% Interrupt Time
阀值:取决于处理器
含义:表示处理器接收处理硬件中断所使用的时间比例。这个值间接指出产生中断的硬件设备活动,比如网络变化。这个计数器显著增加的话表示硬件可能存在问题。
System/Processor Queue Length
阀值:平均值持续大于2那么表示CPU存在瓶颈
含义:如果就绪的任务超过处理能力线程就会被放进队列。处理器队列是就绪但是未能被处理器执行的线程的集合,这是因为另外一个线程正在执行状态。持续或者反复发生2个以上的队列则明确的表示存在处理器瓶颈。你也能通过减少并发取得更大的吞吐量。
System/Context Switches/sec
阀值:按照通常的规律,Context switching速率小于5000/秒/CPU是不需要担心的。如果Context Switching速率达到15000/秒/CPU的话就是一个制约因素了。
含义:当一个高优先级的线程取代一个正在运行的低优先级线程,或者高优先级线程阻塞的时候就会发生Context Switching。大量的Context Switching可以发生在许多线程拥有相同的优先级的情况下,这通常表示有太多的线程竞争CPU,如果你没有看到太高的处理器使用率而且发现Context Switch非常低,那么表示线程被阻塞。