在Linux系统中,通过top命令可以查看CPU是否忙碌。其中一个数值是"idle",用百分比来衡量;另一个是load,用数值来衡量。

load

load的数值可以从文件 "/proc/loadavg" 中得到。

0.20 0.18 0.12 1/80 11206

数值的含义从坐到右分别是过去1分钟、5分钟、15分钟内CPU的利用率。第四列是当前正在运行的进程数目和总的进程数目。最后一列是最后一个使用CPU的进程ID。

load是从进程数目的角度衡量CPU的空闲程度。每一个正在RUN的进程或者等待RUN的进程,都会使load的值增加1。

load的值大于1的意义在于已经有进程在排队等待CPU,这意味着CPU已经开始有点“疲于应付”了。如果是1分钟对应的load值还好,如果是5分钟或者15分钟的load值大于1的话,这可能暗示着潜在的问题。

对于多核的CPU,需要除以CPU的数目以反映单个CPU的忙闲程度。CPU的数目可以通过文件/proc/cpuinfo得知。

其他涉及load的命令

~ $ uptime23:05 up 14 days, 6:08, 7 users, load averages: 0.65 0.42 0.36

idle

idle是从时间的角度衡量CPU的空闲程度。

idel值可以从文件/proc/stat中相关的数值计算得出。

和idle相关的命令

  • top # 查看当前系统状态

  • mpstat # 多核CPU的idle值

~ $ mpstat
Linux ...10:02:45 PM  CPU   %user   %nice    %sys %iowait    %irq   %soft  %steal   %idle    intr/s10:02:45 PM  all   33.99    0.00    1.44    0.13    0.00    0.05    0.00   64.39   1577.02

idle和load的关系

实践数据表明,基本上单个CPU的load和idle具有很高的相关性。如果load的值大于1,idle的值基本上接近0%;反之如果idle接近于100%,则load值也会很小。

网络资源

  • Understanding Linux CPU Load - when should you be worried?

  • Load (computing) @ WikiPedia



转自:http://noyesno.net/page/linux/20130827-420.html