在Linux、Mac和类Unix系统中,用数字来表示系统CPU、磁盘和其他资源的使用情况(实际上,一般都是指CPU的使用情况),这就是系统负载。我们可以通过uptime等命令了解系统的平均负载(load average),系统显示的三个数(0.08,0.92,2.34),从左到右,分别是系统最近1分钟、5分钟和15分钟的平均负载。
什么是负载
简单地说,在某一个时刻,负载=运行的进程数+等待中的进程数;如果系统处于空闲(idle)状态,那么负载是0;如果系统有1个运行中的进程,有2个等待中的进程,那么此时瞬间负载就是3。
我们在查看的系统负载,一般是平均负载,因为瞬间负载变化太大,头一秒负载可能是10,下一秒可能就是0了,这样的负载没有意义,所以查看的都是一段时间的负载。
Unix在计算等待中进程数的时候,只计算等待CPU资源的进程数;Linux系统则把等待CPU资源的进程数和等待其他资源的进程数都计算进去,比如等待磁盘IO资源的进程数。
如何判断系统负载大小
系统繁忙程度和我们查看到的平均负载及CPU核心数有关,对于1核的CPU来说,平均负载为1的时候,说明这段时间该CPU刚好100%满载;平均负载小于1时,说明这段时间没有满载,以上图的uptime为例,5分钟的系统平均负载为0.92,说明这5分钟CPU还有8%的空闲时间;当平均大于1时,说明这段时间CPU超载了,以上图的uptime为例,15分钟的系统平均负载是2.34,说明这15分钟内,超载了134%,这段时间内,平均有1.34个进程在等待CPU资源。
对于多核CPU来说,比如有n个核心,那么当平均系统负载为n时,说明系统这段时间刚好100%满载;小于n,说明系统这段时间仍有空闲资源;大于n则说明系统超载了。比如一款8核心的CPU,平均负载为8时,系统刚好满载,并没有超载,不要觉得负载很高。
扩展阅读:
查看系统平均负载的命令除了uptime,还有下面几个:
#top
#cat /proc/loadavg
#glances
glances不是系统自带的,需要自己安装。详细参考本博客的教程:系统监视工具:Glances。