MongoDB使用了太多内存

时间:2012-02-04 16:18:53

标签: linux mongodb centos

我正在使用带有1GB内存的32位CentOS VPS上的MongoDB。 它在大多数情况下工作正常,但是它的内存使用时间不时出现峰值并使我的服务器崩溃。

有没有办法防止这种情况,例如,限制MongoDB守护程序使用的内存和CPU?

我正在考虑使用ionice运行Mongo守护程序并给它一个低优先级,但我不确定它是否会起作用。

欢迎任何帮助或指示!

3 个答案:

答案 0 :(得分:4)

目前无法限制内存量。 MongoDB使用memory-mapped file机制来访问数据文件。因此,使用的内存量由系统控制。您触摸的数据越多,您需要的RAM就越多。

答案 1 :(得分:2)

我猜你也在同一台服务器上运行其他所有东西?

真的,运行mongo的最好方法是把它放在自己的服务器上,apache,mysql等东西不会跳起来干扰它想要使用的RAM。我自己也遇到了同样的问题 - 服务器会偶尔进行交换并且每次都会窒息,并且需要大量使用。

使用两台512MB服务器可能会更好,这可能与价格相当(一台运行mongo,一台运行其余服务)。我还想过尝试在VPS中运行一个带有mongo的虚拟机,但对于我来说,这属于“太费力”类别。

是的,正如dcrosta所说,使用64位,除非您想将数据大小限制在2GB以下(为什么要这样做呢?)

答案 2 :(得分:1)

我确实有类似的问题,当我使用大量map / reduce时,内存泄漏和崩溃经常发生。我不再使用map / reduce,而且几个月来一直没有内存泄漏/崩溃。