当mongodb内存不足时会发生什么?

时间:2011-10-02 19:16:22

标签: performance memory mongodb

例如,我的db有20 GB的数据,只有2 GB的ram,掉掉了。我能找到并插入数据吗?性能有多糟糕?

2 个答案:

答案 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://highscalability.com/blog/2011/9/13/must-see-5-steps-to-scaling-mongodb-or-any-db-in-8-minutes.html

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://highscalability.com/blog/2010/10/15/troubles-with-sharding-what-can-we-learn-from-the-foursquare.html

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,则会发生非常糟糕的事情。进程只会莫名其妙地死掉......这是一件非常糟糕的事情!特别是在生产中。磁盘很便宜!添加一个宽大的交换分区! : - )