[root@system]# top
top - 23:39:41 up 8 days, 6:36, 2 users, load average: 0.00, 0.01, 0.05
Tasks: 71 total, 1 running, 70 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1016168 total, 386208 free, 69620 used, 560340 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 777376 avail Mem
这两个从一定程度上都可以反映一台机器的繁忙程度.
cpu使用率反映的是当前cpu的繁忙程度,忽高忽低的原因在于占用cpu处理时间的进程可能处于io等待状态但却还未释放进入wait。
平均负载(load average)是指某段时间内占用cpu时间的进程和等待cpu时间的进程数,这里等待cpu时间的进程是指等待被唤醒的进程,不包括处于wait状态进程。
以上分析可以看出,一台机器很有可能处于低cpu使用率高负载的情况,因此看机器的繁忙程度应该结合两者,从实际的使用情况观察,自己的一台双核志强2.8GHZ,2G内存的机器在平均负载到50左右,cpu使用率才接近100%(应用有不少io操作),这种情况下应用还算流畅,实际访问延迟不是很高。因此在cpu还空闲的情况下,如何提高io响应是减少负载的关键,很多人认为负载到几十了机器就非常繁忙了,我倒觉得如果这个时候cpu使用率比较低,则负载高可能不能很好说明问题,一旦cpu处理的进程处理完后,那些等待的进程也能立刻得到响应,这种情况下应该优化io读写速度。真到cpu使用率一直90%以上,即使平均负载只有个位数(比如某一个进程一直在运算),那机器其实也已经繁忙了~
其实,在前