什么是系统平均负载?

LinuxMac和类Unix系统中,用数字来表示系统CPU、磁盘和其他资源的使用情况(实际上,一般都是指CPU的使用情况),这就是系统负载。我们可以通过uptime等命令了解系统的平均负载(load average),系统显示的三个数(0.08,0.92,2.34),从左到右,分别是系统最近1分钟、5分钟和15分钟的平均负载。

uptime显示系统负载

什么是负载

简单地说,在某一个时刻,负载=运行的进程数+等待中的进程数;如果系统处于空闲(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

top查看系统负载

#cat /proc/loadavg

proc/loadavg查看系统负载

#glances

glances查看系统负载和其他信息

glances不是系统自带的,需要自己安装。详细参考本博客的教程:系统监视工具:Glances

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>