添加更多内存是否会降低 CPU 使用率?

添加更多内存是否会降低 CPU 使用率?

我有一个 2GB 内存的虚拟服务器,平均使用量始终低于 1GB 内存,因此我又买了一个新服务器,用于同样的目的,而且内存只有 1GB。但我觉得它现在占用了更多的 CPU。

内存越少,是否意味着会占用更多 CPU?即使平均内存使用率未达到 100%?

// 它是一个带有 Plesk 面板的 Web 服务器

答案1

答案并不那么直接,但本质上是肯定的。

通过减少 RAM,您通常会强制系统在 HDD 上使用更多虚拟内存。这会导致 CPU 必须做更多工作,例如在 RAM 和 HDD 之间移动数据并调整页表,尤其是在进行上下文切换时。因此,应用程序可用的 CPU 时间会减少。

这就是为什么,如果您可以选择花同样的钱来增加一倍 RAM 或将 CPU 速度提高 5%-10%,通常最好把它花在增加一倍 RAM 上。

答案2

CPU 使用率通常只是一种干扰,因为你不知道它是否代表了有用的工作。如果 CPU 使用率很高,则可能表明应用程序正在做很多有用的工作(好);另一方面,也可能表明应用程序效率很低(坏)。

最好关注有用功的直接衡量指标,例如吞吐量潜伏应用程序的 CPU 使用率。对于 Web 服务器,这些指标包括最大同时用户数和服务器响应每个请求所用的时间等。然后,您可以将这些指标与 CPU 使用率进行比较,以了解 CPU 效率。

回答您的具体问题:这取决于您特定环境中的性能瓶颈。

在许多情况下,增加 RAM 实际上会增加 CPU 使用率,因为它将允许完成更多有用的工作——这是一件好事。例如,想象一下一个负载很重的 Web 服务器正在提供文件。性能瓶颈可能是磁盘 I/O;应用程序将花费大部分时间等待磁盘,因此 CPU 使用率将非常低。如果您添加更多 RAM 以将文件缓存在磁盘上,应用程序将花费更少的时间等待,更多的时间进行处理,因此 CPU 使用率和吞吐量将更高。

反过来也可以。例如,计算机算法中经常需要在空间复杂度和时间复杂度之间进行权衡;也就是说,额外的 RAM 允许应用程序使用更少的 CPU,因此 CPU 使用率会更低(或者每个 CPU 周期的吞吐量会更高)。@sybreon 给出了一个很好的例子,说明如何通过添加 RAM 来提高 CPU 使用率,因为系统不必花费太多精力来管理受限的资源。

相关内容