Unix/Linux 上的平均负载是什么意思?

Joh*_*uhy 71 linux unix cpu-usage uptime

如果我跑uptime,我会得到这样的东西:

10:50:30 up 366 days, 23:27,  1 user,  load average: 1.27, 2.06, 1.54
Run Code Online (Sandbox Code Playgroud)

最后那几个数字是什么意思?手册页告诉我它是“系统在过去 1、5 和 15 分钟内的平均负载。”。但规模是多少?1.27高吗?低的?它取决于我的系统吗?

Ken*_*ric 62

平均负载是衡量平均有多少进程同时需要 CPU 注意力的指标。

通常,如果您有一个进程以 100% 的速度运行,并且它永远保持这种状态,您可以期望所有值都接近“1”。

通常,这是尽可能高效的计算,不会因上下文切换而造成损失。

然而,在现代多任务操作系统上,需要 CPU 关注的事情不止一件,因此在来自单个进程的适度负载下,平均负载应该在 0.8 和 2 之间浮动。

如果您决定做一些疯狂的事情,例如使用make -j 60.

另请注意,此指标与有多少内核/CPU 无关。对于双核系统,运行一个消耗整个内核的进程(让另一个空闲)导致平均负载为 1.0。为了确定系统的负载程度,您需要知道内核的数量并自己进行划分。

  • 我知道以 100% 运行的进程听起来不是很“高效”,但如果该进程任意限制自己只使用 20%,则需要 5 倍的时间。所以这里的效率意味着“最佳资源利用”。 (2认同)

小智 10

人 5 过程:

/proc/loadavg 此文件中的前三个字段是平均负载数字,表示运行队列(状态 R)或等待磁盘 I/O(状态 D)平均的作业数量?老化超过 1、5 和 15 分钟。它们与 uptime(1) 和其他程序给出的平均负载数相同。