一、什么是Load Average?
系统负载(System Load)是系统CPU繁忙程度的度量,即有多少进程在等待被CPU调度(进程等待队列的长度)。
平均负载(Load Average)是一段时间内系统的平均负载,这个一段时间一般取1分钟、5分钟、15分钟。
二、如何查看Load?
top命令,w命令,uptime等命令都可以查看系统负载:
[root@lixian ~]$ uptime 13:53:39 up 130 days, 2:15, 1 user, load average: 1.58, 2.58, 5.58
如上所示,lixian机器1分钟平均负载,5分钟平均负载,15分钟平均负载分别是1.58、2.58、5.58
三、Load的数值是什么含义?
把CPU比喻成一条(单核)马路,进程任务比喻成马路上跑着的汽车,Load则表示马路的繁忙程度:
Load小于1:表示完全不堵车,汽车在马路上跑得游刃有余:[ Load<1,单核]
Load等于1:马路已经没有额外的资源跑更多的汽车了:[Load==1,单核]
Load大于1:汽车都堵着等待进入马路:[Load>1,单核]
四、什么样的Load值得警惕(单核)?
Load < 0.7时:系统很闲,马路上没什么车,要考虑多部署一些服务
0.7 < Load < 1时:系统状态不错,马路可以轻松应对 Load == 1时:系统马上要处理不多来了,赶紧找一下原因 Load > 5时:马路已经非常繁忙了,进入马路的每辆汽车都要无法很快的运行
车辆是等待CPU处理的过程(process)。
假如CPU每分钟最多处理100个进程,则系统负载为0.2,这意味着CPU在这1分钟内仅处理20个进程;
系统负载为1.0意味着CPU在这1分钟内处理100个进程;
1.7这意味着除了CPU在处理的100个进程外,还有70个进程在等待CPU处理。
为了顺利运行计算机,系统负载不应超过1.0,因此无需等待任何进程,并且可以首先处理所有进程。
显然,1.0是一个关键值。
如果超过此值,则系统不处于最佳状态。你必须干预。
五、多个CPU处理器
以上是假设你的计算机(电脑)只有一个CPU。
如果你的计算机(电脑)安装了2个CPU,会发生什么?
2个CPU意味着计算机(电脑)的处理能力提升了一倍,并且可以同时处理的进程数量翻了一倍。
如果有两个CPU,则表示有两条马路,此时即使Load大于1也不代表有汽车在等待:
因此,2个CPU表示系统负载能达到2.0,并且每个CPU达到100%的工作负载。
n.0个CPU的电脑,可接受的系统负载最大为n.0个CPU。
多核CPU处理器???
芯片供应商通常在1个CPU内部,包含多个CPU内核,被称为“多核CPU”。
在系统负载方面,多核CPU类似于多CPU。
因此,在考虑系统负载时,必须考虑你的计算机有多少个CPU?并且每个CPU都有多少个核心?
然后,通过将系统负载除以核心总数,只要每个核心的负载不超过1.0,计算机就会如常运行。
如何知道一台电脑有多少CPU核心?
使用命令,允许你查看CPU信息 ▼
cat /proc/cpuinfo
直接返回CPU的核心总数的命令 ▼
grep -c ‘model name’ /proc/cpuinfo
六、三个Load值要先看哪一个?
最后一个问题:
“load average”平均负载,总共返回三个平均值:
1分钟系统负载、5分钟系统负载、15分钟系统负载。
我应该参考哪个值?
如果系统负载仅在1分钟内大于1.0,则其他2个时间段小于1.0,这表明这只是暂时现象,问题并不严重。
如果平均系统负载在15分钟内(提高CPU核心数量后)大于1.0,则问题仍然存在,而不是暂时现象。
因此,你应该主要观察“15分钟系统负载”作为计算机(电脑)如常运行的指示器。
结合具体情况具体分析:
1)1分钟Load>5,5分钟Load<1,15分钟Load<1:短期内繁忙,中长期空闲,初步判断是一个“抖动”,或者是“拥塞前兆”
2)1分钟Load>5,5分钟Load>1,15分钟Load<1:短期内繁忙,中期内紧张,很可能是一个“拥塞的开始”
3)1分钟Load>5,5分钟Load>5,15分钟Load>5:短中长期都繁忙,系统“正在拥塞”
4)1分钟Load<1,5分钟Load>1,15分钟Load>5:短期内空闲,中长期繁忙,不用紧张,系统“拥塞正在好转”