什么是系统负载?

Sea*_*n G 17 cpu-load

在我的工作中,我们有一个运行 Ubuntu 12.04.03 CLI 的数据存储库,当我今天早上登录时检查它们而不是给我正常信息,它说信息无法显示,因为系统负载高于 2 和我想知道这是什么意思?我刚刚重新启动它,因为它没有响应,这与启动和让一切正常进行的过程有关吗?

mur*_*uru 20

运行topuptime命令:

$ uptime
 19:36:03 up 5 days,  9:12,  8 users,  load average: 0.05, 0.16, 0.21
$ top -bn1 | head -1
top - 19:36:07 up 5 days,  9:13,  8 users,  load average: 0.05, 0.16, 0.21
Run Code Online (Sandbox Code Playgroud)

此处所述的平均负载为:

/proc/loadavg
          The  first  three  fields  in this file are load average figures
          giving the number of jobs in the run queue (state R) or  waiting
          for disk I/O (state D) averaged over 1, 5, and 15 minutes.  They
          are the same as the load average numbers given by uptime(1)  and
          other  programs. 
Run Code Online (Sandbox Code Playgroud)

考虑我的平均负载:0.05, 0.16, 0.21
这意味着,在最后一分钟,平均有 0.05 个进程在等待资源。

您是否应该担心平均负载为 2?一般来说,如果平均负载大于可用 CPU 的数量,那么某些进程必须空闲等待 CPU 插槽。

如果平均负载小于 的输出nproc,则无需担心。

另请参阅:unix/linux 中的平均负载是什么意思? 正如 Braiam 所指出的,进程不必只等待 CPU:了解平均负载与 CPU 使用情况


g_p*_*g_p 8

系统负载系统负载平均

它是运行队列,即等待资源(cpu、i/o 等)可用的进程队列。

将单核cpu视为单车道的交通,桥梁和流程为汽车。

现在在这种情况下系统负载是

  • 0.0 - 如果路上没有交通。
  • 1.0 -如果道路上的交通量正好是桥梁的容量。
  • 超过 1 - 如果道路上的交通量高于桥梁的容量,并且汽车必须等待通过桥梁。

此数字未根据您的cpu. 在多处理器系统中,负载 2 表示我们使用双核处理器时 100% 的利用率,如果我们使用四核处理器,则负载 4 表示 100% 利用率。

您可以使用

  • uptime
  • cat /proc/loadavg
  • top

    $uptime 22:49:47 up 11:47, 4 个用户,平均负载:2.20, 1.03, 0.82

这里的最后三个数字分别代表 1、5 和 15 分钟的系统负载平均值。

上面的例子表明平均有 2.20 个进程在最后一分钟测量的运行队列上等待调度。