当我尝试将数据库从一台 mongoDB 服务器复制到另一台(大约 100GB)时,mongo 守护进程占用了 99% 的可用 RAM(Windows 64 位 16GB)。结果,系统变得非常缓慢,有时甚至不稳定。
有什么办法可以避免吗?
MongoDB 2.0.6
阿尔伯特。
MongoDB 在很大程度上是一个“in ram”应用程序。Mongo 已映射所有数据库内存以供使用,但通常只有最近使用的数据会在 RAM 中(称为您的工作集),并且 mongo 将根据需要分页以获取不在 RAM 中的任何数据。通常,mongo 的行为只是在 RAM 中拥有所需的数量,但是当您执行类似 DB Copy 之类的操作时,需要所有数据 - 因此 mongod 会消耗您所有的 ram。
对此没有理想的解决方案,但如果迫切需要,您可以使用 WSRM http://technet.microsoft.com/en-us/library/cc732553.aspx来尝试限制进程消耗的 RAM 量。这将使复制花费更长的时间,并可能导致其他问题。