正在寻找一些提示,技巧,窍门,以避免内存不足
我在媒体上运行centos,服务器的内存很快就耗尽了
我知道它不build议在openvz上运行mongo,但是想知道是否有人知道如何使其工作
谢谢
从客户操作系统的angular度来看,OpenVZ的一个关键问题是,主机操作系统可能会过度使用其RAM,从而使虚拟机临时使用更多的保证金。 对于使用大量内存的进程来说,这是一个问题,并且假设一旦分配了内存,就可以保留内存,以便进行caching。
IIRC Mongo使用文件和内存的方式不允许限制可能尝试使用的内存的方法。 如果它看起来合适,它会尝试所有可用的内存,对于其余的操作系统稍微less一些,并在OpenVZ下,这将是最大的金额分配不是你的保证金额。
我已经看到在Windows 2008r2( 见这里 )中讨论限制它的方法,但是这对CentOS在OpenVZ下运行并没有帮助。 您可以尝试的一个select是将虚拟机的最大内存分配设置为与其保证的分配相同(或转移到并非全部内存过度提交的虚拟化解决scheme) – 这会阻止Mongo和内核创build不稳定的OOM情况。
Virtuozzo / OpenVZ是一个出色的系统,它可以让你从你的硬件中挤出最多的性能。 然而,权衡是要求你比pipe理程序系统做更多的调整。 最重要的是,习惯看“用户beancounters”,让你知道什么时候你有一些调整。
最好的入门方法是创build一个“无限制”的虚拟机,然后限制磁盘空间和权限。 这将防止一些更麻烦的问题,如用尽networking缓冲区或OOM保证页面。 这种设置应该适合您99%的需求。
只要确保你的真正的主机有一个体面的交换“以防万一”,我不能强调build立一个良好的监控系统是多么重要。