我已阅读MongoDB文档,并附带有关32位系统的警告;特别是它们的上限为Mongo的2 GB可用内存。
所以我想知道这个声明是否意味着在Linode基于RAM的512MB基于VPS的低内存设置中运行MongoDB。我怀疑它是否重要,但是后来的资源添加使用64位发行版。
是否有任何警告或有人建议在MongoDB的VPS中选择最少的RAM?我知道项目要求就是这个问题,但我的意思是说,即使是将MongoDB旋转起来也是可笑的。
答案 0 :(得分:26)
我在一些小型生产网站上使用它,这些网站在我的Linode 512&它几乎没有使用任何内存,只有大约5-6MB。我的数据集现在非常小。
MongoDB使用映射内存存储引擎,这意味着它依赖于OS系统缓存来将常用数据保存在内存中。
http://www.mongodb.org/display/DOCS/Caching
因此,除非您有一个庞大的数据集,否则Linode 512应该没问题。
在研究这个问题时,我有点担心的是MongoDB在内存耗尽时似乎崩溃,没有太多警告。也很难准确确定它将使用多少内存或磁盘空间与您拥有的数据量成正比。也没有办法以降低性能为代价来指定硬限制。这是你可能想要监控的东西。
您可以尝试使用--smallfiles --noprealloc选项运行MongoDB,因为这样可以开始使用较小的数据库文件而不预先分配它们,如果您有一个小数据集,则可以节省磁盘空间。
以下是一位用户的体验:
http://groups.google.com/group/mongodb-user/browse_thread/thread/223810a749f0e1eb
不幸的是,线程没有得到解决,如果他们有理由发生崩溃会很好。
这也很好看:
http://groups.google.com/group/mongodb-user/browse_thread/thread/2646a52c4f41d832/d43f3ba7bbbbd63d