我们在三台机器上运行一个 mongodb 副本集。三台机器都有大约 16GB 但只有 255MB Swap。Swappiness 保留其默认值 60。机器运行 CentOS 6.4。数据库比 16GB 大得多,但这对我们来说没问题。真正的工作集要小得多。
我们面临的问题是主要消耗会耗尽所有可用内存,而不是被 OOM 杀死。我知道这就是 mongodb 管理内存的方式。
服务器被 OOM 杀死后,必须手动重新启动它。
有什么办法可以防止 mongodb 被 OOM 杀死?调整swappiness?增加交换空间?我认为这些设置只会增加 mongod 被杀之前的宽限期。