RHEL8 上的交换比 RHEL7 上更多?

RHEL8 上的交换比 RHEL7 上更多?

我们使用 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 之间发生了什么变化,或者也许我应该从哪里开始更好地描述/排除故障/理解为什么要做出这种交换决定。

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

提前谢谢了。 ++西里尔

答案1

FWIW,我们检测到的行为已被红帽确认为错误(错误吉拉 1990580,这不是公开的)。

答案2

我们在 swap、RHEL 和 MariaDB 上也有同样的问题。我们的临时解决方案是将内核从 RHEL 8.0/8.1 降级到旧版本。此问题仅出现在 RHEL 8.2/8.3/8.4/8.5 的内核中。

核心没有问题:4.18.0-80.el8 - 4.18.0-147.8.1.el8_1

核心问题:4.18.0-193.el8 - 4.18.0-348.12.2.el8_5(以及所有新内核,例如 5.4.x 和 5.16.x)elrepo.org

附:西里尔·毛奇您能否分享来自 Red Hat Bugzilla 问题的其他信息(不含敏感数据)?您的答案

FWIW,我们检测到的行为已被红帽确认为错误(错误吉拉 1990580,这不是公开的)。

因此,目前看来,降级内核是唯一的解决方法。也许,这些信息可以帮助我和其他用户。

答案3

仅供参考,bugzilla 票证刚刚在 kernel-4.18.0-361.el8 中被标记为“已验证”。此内核级别嵌入在(当前)最新可用的 RHEL 8.6 beta 中。我们还无法亲自验证 ++Cyrille

答案4

如果您不想升级到 RH 8.7,您可以在这里找到解决方法https://github.com/systemd/systemd/issues/9276#issuecomment-1256304197

在各种 RHEL 8(从 8.2 到 8.6)上进行了测试:它可以工作。

相关内容