3G RAM + 1G 分区交换 - 够用吗?

这是我之前写的一篇文章:

特别是

开箱即用的内核将拒绝无法满足的分配。通过此调整,它将接受这些分配,失败可能会避免,或者可能会稍后在分配变为使用时发生。

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

还有

它是为了增加可用的虚拟内存量。(即 RAM 和交换空间的总和。)如果您耗尽了 RAM,您将开始遇到性能问题。但是,如果您耗尽了虚拟内存,进程将无法启动,或者会死亡或被杀死。这很残酷。

我们那些 RAM 和磁盘都很小的人可能无法自由地添加大量的交换空间,但 2G 似乎是一个不错的最低限度。(如果您有 16G RAM,您可能不需要任何交换空间,但这是另一回事。当问题是事物失败时,重要的是两者的总和。)

至于阻力,我认为是因为人们认为此更改是为了 redis 的利益,而大多数人不需要它。

编辑:这个最近的帖子 可能是个例子,一个小型实例耗尽了内存,并且没有设置 overcommit。但我们不知道设置 overcommit 是否会解决这个问题——该用户升级到了 8G RAM。

2 个赞