解释服务器负载

解释服务器负载

我有一台配备 AMD Phenom QuadCore 3000 + 8 GB RAM 的托管服务器

我听说 1-2 个服务器负载之间的差异是 100% 的工作量。

我目前的结果是:

1.27 | 0.8 | 0.78

并且从整体上看,服务器负载很少超过 1。

当需要考虑更大的服务器时,您如何解释这些结果?

服务器负载如何定义?(通常我认为 1 应该是 100% 的工作量!?)

答案1

服务器负载的实际计算有点复杂,但为了便于理解,可以简化计算。考虑服务器负载的最佳方法是将其视为给定时间间隔内当前正在运行(或等待运行)的进程的平均数量。传统上,服务器负载以三个时间段为单位给出 - 一分钟、五分钟和十五分钟。负载可能由多种原因造成 - 实际 CPU 时间、等待网络缓冲区、等待磁盘等等。

在您给出的示例中,一分钟的负载为 1.27,五分钟的负载为 0.87,十五分钟的负载为 0.78 - 这表明计算机在最后一分钟所做的事情比您在过去五分钟和十五分钟所做的事情稍微密集一些。很简单。

但是,当考虑多核服务器时,情况会变得更加复杂。当您只有一个处理器/核心时,负载大于 1 意味着无论您有什么进程,由于某种原因,它们都在等待,而不是主动运行。这通常是一件坏事,因为这意味着您正在做的任何事情都会花费比它本来可以花费的时间更长的时间。但是,当您有多个核心时,您可以一次运行多个进程。如果您有一台双核服务器,负载可能会上升到 2,然后您才会开始有进程等待,三核的平均负载为 3,依此类推。

根据经验,大多数系统应以总容量的一半到三分之二左右运行。低于这个数字,硬件利用率就不足。高于这个数字,它可能无法处理大多数应用程序中突然出现的活动高峰。但是,也有一些例外 - 有些系统应保持在更严格的负载下,有些系统应以满负荷或更高的容量运行。

这些规则都不是固定不变的,在实际情况下,系统负载的计算可能会非常复杂。但希望本文能让您大致了解这些数字的含义。

答案2

系统负载是传统的 Unix 完成指标,通过计算正在运行的线程总数与可运行队列的大小的一分钟、五分钟和十五分钟的浮动平均值来计算。

请注意,阻塞或等待队列中的进程(即已被换出或正在等待 I/O 完成的进程)不是除了在 Linux 上,在 Linux 上处于不间断等待状态(例如:等待磁盘 I/O 完成)的线程正在参与负载之外,在此计算中均被考虑在内。

这意味着在大多数 Unix 系统上,负载代表了实际 CPU 负载的良好衡量标准,并且可以帮助确定增加多少 CPU 将有助于提高系统性能;而在 Linux 上,它代表了感知负载的衡量标准,但如果瓶颈不是 CPU 而是磁盘,则可能会导致错误的结论。

相关内容