27

我已经阅读了 MongoDB 文档,它带有一个关于 32 位系统的警告;特别是 Mongo 的可用 RAM 上限为 2 GB。

所以我想知道该声明是否意味着在低内存设置中运行 MongoDB,例如 Linode 的 512mb 基于 RAM 的 VPS。我怀疑这很重要,但使用 64 位发行版供以后添加资源。

任何警告或有人会建议在 MongoDB 的 VPS 中选择最少的 RAM?我知道项目需求会影响到这一点,但我的意思是最低限度,即使没有启动 MongoDB 也会很可笑。

4

1 回答 1

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

于 2010-08-24T08:12:55.793 回答