Linux Load Average过高多少合适?CPU Load使用率检查

如果你的计算机(电脑)速度很慢,你可能需要检查是否系统高负载?

最近,有位网络营销人员表示,他所负责的电商网站,前段时间出现状况无法访问……

该网站基于WordPress建站,在Linux VPS服务器搭建。

  • Linux VPS服务器的配置,只有1个CPU核心数、1GB RAM内存。

登录Linux VPS服务器后台查看问题,发现load average平均负载非常高,达到10.0以上。

在Linux系统上,我们通常使用uptime命令来查看它(w命令和top命令也可用)。

此外,它们也适用于Apple的Mac电脑。

发现load average负载过高问题,就想办法解决问题!

  • 遇到load average负载过高的情况,陈沩亮给予的解决方案是提高CPU核心数。
  • 然后,果断将配置升级到2个CPU核心8 GB RAM内存
  • 很快就解决了load average负载过高的状况。

一、检查系统负载

在SSH终端窗口中,键入以下命令 ▼

uptime

系统将返回一行信息 ▼

检查系统负载:在SSH终端窗口中,键入以下命令

该行的后半部分显示“load average”,表示“系统的平均负载”

  • 内有3个数字,我们能由此确定系统负载是大还是小?

“load average”,表示“系统的平均负载”。内有3个数字,我们能由此确定系统负载是大还是小

为什么有3个数字?

  • 它们代表系统的平均负载,分钟为1分钟,5分钟和15分钟。
  • 如果继续查看,它还会告诉你当CPU完全空闲时,平均负载为0;
  • 当CPU工作负载饱和时,平均负载为1。

CPU是什么意思?

  • CPU就是中央处理器。
  • (英文Central Processing Unit,CPU)
  • CPU是一台计算机的运算核心和控制核心。

CPU使用率

  • CPU使用率是一段时间内,CPU使用状态的统计信息。
  • 该指示显示CPU使用率(CPU被占用的情况)。
  • 如果CPU长时间占用,则需要考虑CPU是否过载。?
  • 长期过载操作是对机器本身的一种损害。
  • 因此,必须将CPU利用率控制到一定比例,以确保机器的正常运行。

Load Average是什么?

  • Load Average是CPU负载,它包含的信息是一段段内CPU使用状态的统计。
  • 它是CPU处理和等待CPU处理一段时间的进程数之和的统计信息。
  • 即CPU使用的队列长度统计信息。

显然,“load average”的值越低,例如0.2或0.3,意味着计算机(电脑)的工作量越小,系统负载越轻。

  • 但是,什么时候能看到系统负载很严重?
  • 到底是等于1时?或是等于0.5?还是等于1.5?
  • 如果这三个值在1分钟,5分钟和15分钟内不同,我该怎么办?

二、类比

要确定系统负载是否过重,你必须了解load average(平均负载)的真实含义。

接下来,陈沩亮将会用最通俗易懂的语言,来解释这个问题。

首先,我们假设在最简单的情况下,你的计算机只有一个CPU,所有运算操作必须由该CPU完成。

让我们将这个CPU的load Average,想象成一座桥梁:

桥上只有一条车道,所有车辆都必须越过这条车道。

(显然,这座桥只能用于一个方向。)

当系统负载为0时,表示桥上没有汽车 ▼

当系统负载为0时,表示桥上没有汽车

系统负载为0.5,这意味着桥上有一半的汽车 ▼

系统负载为0.5,这意味着桥上有一半的汽车

系统负载为1.0,这意味着桥的所有部分都有汽车,这意味着桥是“满的” ▼

系统负载为1.0,这意味着桥的所有部分都有汽车,这意味着桥是“满的” 

  • 但必须指出的是,在此桥梁仍然可以顺利通过。

系统负载为1.7,这意味着车辆太多,桥梁已满(100%)。

  • 等待桥梁的车辆占桥梁车辆的70%。

通过类比,以此类推,系统负载为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个通道,通车容量加倍

  • 因此,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分钟系统负载”作为计算机(电脑)如常运行的指示器。

以下是更多关于top命令/CPU使用率/load average计算方法 ▼