使用 openvz 运行 mongodb

使用 openvz 运行 mongodb

有谁成功让 mongodb 在 openvz 上运行过吗?

正在寻找一些技巧、窍门和窍门来避免内存不足

我在 media temple 上运行 centos,服务器很快就耗尽了内存

我知道不建议在 openvz 上运行 mongo,但想知道是否有人知道如何让它工作

谢谢

答案1

从客户操作系统的角度来看,OpenVZ 的一个关键问题是主机操作系统可能会过度使用其 RAM,从而允许 VM 暂时使用超过保证的 RAM 量。对于使用大量 RAM 的进程来说,这是一个问题,并且它们认为一旦分配给它们,它们就可以出于缓存的原因保留它们。

据我所知,Mongo 使用文件和内存的方式不允许限制其可能尝试使用的内存量。如果它认为合适,它将尝试占用所有可用的内存,其余操作系统的内存会少一点,并且在 OpenVZ 下,这将是分配的最大量,而不是保证量。

我曾见过关于在 Windows 2008r2 下限制它的方法(看这里),但这对在 OpenVZ 下运行的 CentOS 没有帮助。您可以尝试的一个选项是将虚拟机的最大 RAM 分配设置为与其保证分配相同(或转移到不会过度使用所有内存的虚拟化解决方案) - 这应该可以阻止 Mongo 和内核创建不稳定的 OOM 情况。

答案2

Virtuozzo/OpenVZ 是一个非常棒的系统,它允许您最大限度地发挥硬件的性能。但是,它的缺点是,它需要您进行比虚拟机管理程序系统更多的调整。最重要的是,习惯于观察“用户计数器”,这样您就知道何时需要进行一些调整。

开始的最佳方法是创建一个“无限制”的虚拟机,然后仅限制磁盘空间和特权页面。这将防止一些更愚蠢的问题,例如耗尽网络缓冲区或 OOM 保证页面。这种设置应该可以满足您 99% 的需求。

只需确保您的真实主机具有足够数量的交换空间“以防万一”,并且我再怎么强调建立一个良好的监控系统的重要性也不为过。

相关内容