例如,我的db有20 GB的数据,只有2 GB的ram,掉掉了。我能找到并插入数据吗?性能有多糟糕?
答案 0 :(得分:5)
这实际上取决于工作集的大小。
如果你的工作集小于你的RAM大小,MongoDB可以处理一个非常大的数据库和仍然非常快。
工作集是您正在处理时间和索引的文档集。
以下链接可帮助您理解这一点:http://www.colinhowe.co.uk/2011/02/23/mongodb-performance-for-data-bigger-than-memor/
答案 1 :(得分:5)
最好谷歌这一点,但许多消息来源说,当你的工作量超过你的RAM大小时,性能会大幅下降。
Sharding可能是一个有趣的选项,而不是添加更多的RAM ..
http://www.mongodb.org/display/DOCS/Checking+Server+Memory+Usage
http://blog.boxedice.com/2010/12/13/mongodb-monitoring-keep-in-it-ram/
http://groups.google.com/group/mongodb-user/browse_thread/thread/37f80ff39258e6f4
Can MongoDB work when size of database larger then RAM?
What does it mean to fit "working set" into RAM for MongoDB?
您可能还想了解去年的4square停电:
http://groups.google.com/group/mongodb-user/browse_thread/thread/528a94f287e9d77e
http://blog.foursquare.com/2010/10/05/so-that-was-a-bummer/
旁注:
你说“掉掉了”......?为什么?您应该始终在UNIX系统上有足够的交换空间!交换大小= 1 ... 2倍RAM大小是个好主意。使用快速分区是个好主意。如果您的UNIX系统耗尽RAM并且没有Swap,则会发生非常糟糕的事情。进程只会莫名其妙地死掉......这是一件非常糟糕的事情!特别是在生产中。磁盘很便宜!添加一个宽大的交换分区! : - )