原文链接:https://www.chenweiliang.com/cwl-1027.html
如果你的计算机(电脑)速度很慢,你可能需要检查是否系统高负载?
最近,有位网络营销人员表示,他所负责的电商网站,前段时间出现状况无法访问……
该网站基于WordPress建站,在Linux VPS服务器搭建。
登录Linux VPS服务器后台查看问题,发现load average平均负载非常高,达到10.0以上。
在Linux系统上,我们通常使用uptime命令来查看它(W命令和top命令也可用)。
此外,它们也适用于Apple的Mac电脑。
一、检查系统负载
在SSH终端窗口中,键入以下命令 ▼
uptime
系统将返回一行信息 ▼
该行的后半部分显示“load average”,表示“系统的平均负载”。
为什么有3个数字?
- 它们代表系统的平均负载,分钟为1分钟,5分钟和15分钟。
- 如果继续查看,它还会告诉你当CPU完全空闲时,平均负载为0;
- 当CPU工作负载饱和时,平均负载为1。
CPU是什么意思?
- CPU就是中央处理器。
- (英文Central Processing Unit,CPU)
- CPU是一台计算机的运算核心和控制核心。
显然,“load average”的值越低,例如0.2或0.3,意味着计算机(电脑)的工作量越小,系统负载越轻。
- 但是,什么时候能看到系统负载很严重?
- 到底是等于1时?或是等于0.5?还是等于1.5?
- 如果这三个值在1分钟,5分钟和15分钟内不同,我该怎么办?
二、类比
要确定系统负载是否过重,你必须了解load average(平均负载)的真实含义。
接下来,陈沩亮将会用最通俗易懂的语言,来解释这个问题。
首先,我们假设在最简单的情况下,你的计算机只有一个CPU,所有运算操作必须由该CPU完成。
让我们将这个CPU想象成一座桥梁:
桥上只有一条车道,所有车辆都必须越过这条车道。
(显然,这座桥只能用于一个方向。)
当系统负载为0时,表示桥上没有汽车 ▼
系统负载为0.5,这意味着桥上有一半的汽车 ▼
系统负载为1.0,这意味着桥的所有部分都有汽车,这意味着桥是“满的” ▼
系统负载为1.7,这意味着车辆太多,桥梁已满(100%)。
通过类比,以此类推,系统负载为2.0:
- 意味着有许多在等待的车辆和桥面一样多。
- 系统负载为3.0,意味着等待桥梁的车辆是桥面的两倍。
- 当系统负载大于1时,后方车辆必须等待;
- 系统负载越大,等待过桥的时间越长▼
- CPU的系统负载,基本上等于上述模拟桥的容量,这是CPU的最大工作量。
- 桥上的车辆是等待CPU处理的过程(process)。
假如CPU每分钟最多处理100个进程,则系统负载为0.2,这意味着CPU在这1分钟内仅处理20个进程;
系统负载为1.0意味着CPU在这1分钟内处理100个进程;
1.7这意味着除了CPU在处理的100个进程外,还有70个进程在等待CPU处理。
为了顺利运行计算机,系统负载不应超过1.0,因此无需等待任何进程,并且可以首先处理所有进程。
显然,1.0是一个关键值。
如果超过此值,则系统不处于最佳状态。你必须干预。
三、系统负载load average多少合适?
1.0是系统负载的理想值吗?
不一定,系统管理员往往会留下一点空间。
当此值达到0.7时,你应该知道是这样的:
- 当系统负载继续大于0.7时,你必须开始调查问题,并防止情况恶化。
- 当系统负载继续大于1.0时,你必须找到解决方案,并降低该值。
- 当系统负载达到5.0时,表明系统存在严重问题,并且长时间没有响应,或几乎崩溃。你不应该让系统达到此值。
四、多个CPU处理器
以上是假设你的计算机(电脑)只有一个CPU。
如果你的计算机(电脑)安装了2个CPU,会发生什么?
2个CPU意味着计算机(电脑)的处理能力提升了一倍,并且可以同时处理的进程数量翻了一倍。
陈沩亮在此仍然使用大桥来做类比,2个CPU意味着大桥有2个通道,通车容量加倍 ▼
- 因此,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 average时间该看哪个?
最后一个问题:
“load average”平均负载,总共返回三个平均值:
- 1分钟系统负载、5分钟系统负载、15分钟系统负载。
我应该参考哪个值?
- 如果系统负载仅在1分钟内大于1.0,则其他2个时间段小于1.0,这表明这只是暂时现象,问题并不严重。
- 如果平均系统负载在15分钟内(提高CPU核心数量后)大于1.0,则问题仍然存在,而不是暂时现象。
- 因此,你应该主要观察“15分钟系统负载”作为计算机(电脑)如常运行的指示器。
欢迎转载《
Linux Load Average过高多少合适?CPU Load使用率检查》
陈沩亮版权所有,转载请注明出处链接:https://www.chenweiliang.com/cwl-1027.html
网站地址:https://www.chenweiliang.com/
欲学更多秘技,请关注微信公众号:cwlboke