多核系统的平均负载解释

多核系统的平均负载解释

我正在尝试了解 Debian 系统中的平均负载。我阅读了一些显示值的解释,并了解到该数字表示我的系统“过载”的程度。因此,0.5 的平均负载意味着我的系统可以计算两倍的负载而不会产生任何额外的延迟。而 2 的平均负载意味着我的系统可以处理大约一半的负载。

我读到过,平均负载数应该除以系统中的处理器数。因此,2 CPU 系统上的平均负载 2 等于单 CPU 系统上的平均负载 1。对吗?

但现在出现了一个难题。多核系统怎么办?这个问题似乎存在很大争议。关于这个问题的大部分旧信息表明,核心数不等于处理器数,因此 8 核系统上的平均负载不是除以核心数。也有很多较新的文章说,核心数大致对应于 CPU 数,因此平均负载应该除以核心数。

什么信息是正确的?

我可能会用这个来回答我自己的问题,因为我附上了系统的屏幕截图,该系统有 8 个核心,其中只有一个核心利用率达到 100% - 而我的平均负载是 1.02。因此,看起来应该将平均负载除以核心数,才能获得有关系统负载的相关信息。我说得对吗?

平均负载

答案1

一般情况下是的。在 Linux 系统上,平均负载对 CPU 和/或核心的计数类似。

当您在虚拟环境和/或 Intel® 超线程“核心”中运行时,“虚拟核心”之类的东西可能会引起一些困惑。基本上,Linux 会计算每组采样时间内活动任务需要多少个刻度。因此,只要您拥有更多“虚拟核心”,活动任务就会并行并被考虑在内。但由于这些不是真正的核心,一旦您的活动任务比实际的物理核心和/或 CPU 多,您可能会遇到不平衡的负载平均值。

答案2

平均负载与正在运行或等待运行的任务数量成正比。它不反映消耗的 CPU 周期数,也不反映您有多少个 CPU。也不反映您的应用程序的实际响应时间。

保持平均负载低于 CPU 数量的简单规则很有用,但并不总是适用。一些实际系统有每 CPU 平均负载比率高于 5 且运行良好,但这种情况很少见。

实际上,测量平均负载是众多性能计数器之一。最重要的是,这些指标对提供给最终用户的服务很有用。Web 服务器响应时间。数据库查询量。了解当情况良好时以及当用户抱怨时数字是什么样子。

相关内容