如何计算我的系统的最大系统平均负载?

如何计算我的系统的最大系统平均负载?

我遇到一种情况,我想监控我的服务器负载,为此我尝试设置一个阈值,但我不确定我的服务器可以达到的最大值是多少。

这是当前系统平均负载:

0.23, 1.52, 2.69

sudo nproc --all 返回值为 6

CPU 详细信息如下:

在此处输入图片描述

这是否意味着我的服务器可以达到系统平均负载取决于6

答案1

实际上不存在最大平均负载。它可以根据纯 CPU 处理之外的其他资源而增加,例如等待 IO 等其他内容。

但是当 CPU 受限时,您会期望在充分利用的系统上看到每个核心 1 个。

4 core = 4 load avg

有了超线程,你会希望

4 core hyper-threaded = 8 load avg

但事情可能会更复杂,因为它们不是真正的核心:Linux 平均负载和超线程

如何计算平均负载

https://superuser.com/questions/23498/what-does-load-average-mean-in-unix-linux

平均负载是给定时间段内的负载数的平均值。它考虑了以下过程:

在 CPU 上积极运行。

视为可运行,但正在等待 CPU 可用。

休眠:即等待某种资源(通常是 I/O)可用。

答案2

平均负载表示已准备好分配 CPU 的进程数(即未因 I/O 或其他原因而阻塞)。因此,在出现故障的系统上,您可能会看到 100 左右的值。因此,该值与内核数无关,但我猜理论上这将受限于系统可以支持的进程总数。

答案3

CPU 利用率是比平均负载更容易设置阈值的指标。许多监控系统从用户 + 系统时间等输入中获取此信息vmstat

您的工作量会有所不同,但高于 90% 的比例往往会降低用户交互响应时间。

答案4

这意味着 LA 高达 6 是正常的。在某些情况下,您可以拥有更高的 LA(例如,如果某些东西进行了太多上下文切换)。

相关内容