在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值也会很小。
网络资源
本文转自 holy2009 51CTO博客,原文链接:http://blog.51cto.com/holy2010/1976480