系统负载可以达到多高?

系统负载可以达到多高?

每次我通过 SSH 登录服务器时,它都会闪现一些服务器信息。例如 IP 地址、交换使用情况、内存使用情况等。它闪现的其他信息之一是系统负载。现在大多数时候系统负载数字小于 0.10,但其他时候我看到它上升到 0.89(通常在启动时)。

这就引出了一个问题:系统负载能达到多高?例如,它有可能达到 2.00 甚至 100.00 吗?

答案1

这就引出了一个问题:系统负载能达到多高?例如,它有可能达到 2.00 甚至 100.00 吗?

当然。查看uptime手册页:

   System load averages is the average number of processes that are either
   in a runnable or uninterruptable state.  A process in a runnable  state
   is  either  using the CPU or waiting to use the CPU. A process in unin‐
   terruptable state is waiting for some I/O access, eg waiting for  disk.
   The  averages  are  taken over the three time intervals.  Load averages
   are not normalized for the number of CPUs in a system, so a load  aver‐
   age  of 1 means a single CPU system is loaded all the time while on a 4
   CPU system it means it was idle 75% of the time.

因此,如果您有大量进程等待运行(或大量进程被阻止等待 I/O),那么您的平均负载就会很高。 本文更详细地讨论了这一点,并提供了其他资源的有用链接。

在无负载的系统上,平均负载通常在 0 <= load_average <= 范围内。n, 在哪里n是您的系统上的核心数。

答案2

我见过运行中的系统负载达到数千。平均负载是一种相对测量方法,基于等待进程来衡量有多少竞争者争取内核的关注并获得 CPU 时间。如果机器被作业淹没或崩溃,则可能需要很长时间。

可接受的级别取决于机器、内核数量、使用的内核作业调度程序类型以及您期望它执行的作业。我有一些机器在 ~10 范围内表现良好,但如果达到 ~40-50 就会陷入停滞。其他机器在 2 时会明显滞后,在 10 时将无法使用。

由于许多事情同时进行,并且机器正在加速,因此启动期间负载较高并不罕见。我认为对于桌面 Linux 来说,启动期间负载达到 ~1 是相当正常的,然后在不执行任何操作时稳定在 ~0.1。

答案3

在 Linux 上,系统负载平均值由三种不同状态的进程组成。一般来说,可以说负载平均值是等待 CPU 时间或消耗 CPU 时间的进程数量。负载平均值概览中的三个值分别是过去一分钟、过去 5 分钟和过去 15 分钟的负载平均值。

计入平均负载的进程的三种不同状态为:(1) 在 CPU 上运行的进程、(2) 等待 CPU 时间的进程和 (3) 处于不间断睡眠状态的进程。最后一类虽然不会产生 CPU 负载,但可以显著增加系统平均负载。

例如,十几个等待从非常繁忙或不可用的磁盘读取的进程将产生 12 的平均负载,因为进程处于不间断的睡眠状态,但您的 CPU 在此期间可以完全空闲。

所以,是的,平均负载很容易上升到两位数。这有多糟糕取决于你的硬件。如果你有 16 个核心,那么有 16 个进程等待 CPU 时间还不算太糟糕。在单核机器上,有 3 个进程等待 CPU 时间就非常糟糕了。

答案4

终止一个消耗旧式 450Mhz CPU 的进程几秒钟后:

在此处输入图片描述

相关内容