正常运行时间VS.最高CPU使用率:我应该相信什么,为什么会出现这种差异?

时间:2011-12-13 15:03:45

标签: linux load embedded uptime

我的嵌入式设备存在一些性能问题:

# uptime 
 14:59:39 up  5:37, load average: 1.60, 1.50, 1.53

对于单声道系统来说非常糟糕...... :-p!但是,如果我查看顶级实用程序,我的空闲时间总是在80%左右!

Mem: 49020K used, 75960K free, 0K shrd, 0K buff, 21476K cached
CPU: 12.5% usr  4.8% sys  0.0% nic 81.7% idle  0.0% io  0.9% irq  0.0% sirq
Load average: 1.30 1.42 1.51 1/80 18696

阅读完一些文章后,我最好相信正常运行命令。但为什么这个差异?我的CPU真的无所事事吗?!

3 个答案:

答案 0 :(得分:5)

加载不仅可以衡量R状态中的进程数(可运行,可以使用CPU时间),还可以处理D状态(不间断睡眠,通常等待IO)。您可能在D状态中有一个进程有助于加载,但不使用cpu。此命令将显示有助于加载的所有当前进程:

ps aux | awk '$8~/[RD]/'

查看该输出,看看你是否有D状态的命令(在第8列)

答案 1 :(得分:0)

你最好先了解'平均负载'代表什么。

简而言之,它是一些进程,等待一些资源,资源可能是CPU,HDD,串口,......

答案 2 :(得分:0)

负载平均值似乎有点高,这可能会导致cpu忙于处理I / O(磁盘/网络)或线程管理(你可能运行太多)。