Discourse实例升级到2022年2月15日失败

我认为这不仅仅是这样——让我试着解释一下。这个建议来自 Redis,Redis 推荐它是因为 fork 一个进程需要大量的虚拟内存,而 Redis 会 fork 来进行后台保存,但实际上并不需要这些虚拟内存。

这对于许多 Unix 应用程序来说是很典型的:它们会 fork,但不需要将内存使用量加倍。因为这对许多应用程序来说是典型的,而且这是一个内核设置,它会改变所有容器中所有进程的行为,当虚拟内存面临压力时,它可能会将失败转化为成功。

在我们许多人使用的廉价小型实例上,虚拟内存经常面临压力。尤其是在升级或重建期间。

因此,更改此设置可能与升级成功或失败有关,特别是当最近有增加虚拟内存需求的更改时。

默认情况下,内核会拒绝无法满足的分配。通过此调整,它将接受这些分配,失败可能会被避免,或者当分配变为使用时,失败可能会稍后发生。

如果您的 RAM 和 swap 总量足够大,您将永远不需要更改此设置。如果您的总量不大,更改它可能会有帮助。

2 个赞