RHEL8 上的交换比 RHEL7 上更多?

Cyr*_*CCI 5 linux performance rhel swap virtual-memory

我们使用 Linux 应用程序已经有一段时间了(我们的旅程始于十年前的 RHEL 4)。我们最近在 RHEL 7.9 上运行我们的应用程序,现在正在迁移到 RHEL 8.4。

我们总是将 vm.swappiness 设置为 1,以便在仍然有大量可用内存(页面缓存中的 GIG 页面)时尽可能避免发生交换:是的,我们更喜欢先吃页面缓存:-)

这在 RHEL 7.x 上一直运行得很好:我们从未见过在可用内存超过 500MB 左右时发生交换。我们的系统通常具有 16 到 64 GB 的 RAM。

在 RHEL 8.4 上,我很确定我亲眼目睹了在有大量(几 Gig)可用内存的情况下发生的几次交换。在 RHEL 7 上的类似情况下从未发生过这种情况。

因此,我想从交换“攻击性”的角度了解 RHEL 7 和 RHEL 8 之间发生了什么变化,或者也许我应该从哪里开始更好地描述/排除故障/理解为什么要做出这种交换决定。

你们对我如何实现这一目标有一些了解/建议吗?

提前谢谢了。++西里尔

Cyr*_*CCI 5

FWIW,我们检测到的行为已被 Red Hat 确认为错误(Bugzilla 1990580,这是 \xe2\x80\x99t 公开的)。

\n


Art*_*nov 1

您正在运行的内核版本已更改 - 它仅负责交换。RHEL 7 使用内核 3.10,RHEL 8 使用 4.18 - 它们之间存在大量变化。

如果你永远不会用完 RAM,你也可以完全禁用交换。我这样做已经有十多年了,因为交换会导致非常不可预测的行为和响应问题,而且通常并没有真正的帮助。