当mongoDB db.copyDatabase(...)占用所有可用的RAM时,机器挂起

时间:2012-09-05 17:37:19

标签: mongodb database

当我尝试将数据库从一个mongoDB服务器复制到另一个mongoDB服务器(大约100GB)时,mongo守护进程占用了99%的可用RAM(Windows 64位16GB)。结果,系统变得非常慢,有时不稳定。

有什么办法可以避免吗?

MongoDB 2.0.6

1 个答案:

答案 0 :(得分:3)

阿尔伯特。

MongoDB非常适合“ram”应用程序。 Mongo将所有数据库内存映射以供使用,但通常只有最近使用的数据将存储在RAM中(称为工作集),mongo将根据需要进行分页以获取不在RAM中的任何数据。通常情况下,mongo的行为只需要在RAM中拥有它所需的数量,但是当您执行类似DB Copy的操作时,所有数据都是必需的 - 因此mongod会占用你所有的ram。

没有理想的解决方案,但如果迫切需要,您可以使用WSRM http://technet.microsoft.com/en-us/library/cc732553.aspx来尝试限制进程消耗的RAM量。这将导致复制花费更长时间,并可能导致其他问题。