假设您现在在 dell.com 上,您正在购买一台服务器来为您的小型初创公司运行 MongoDB 数据库。您将必须处理每分钟数万次写入和读取(但对象很小)。您会选择 2 个处理器吗?在 RAM 上投入更多吗?
我听说(如果我错了请纠正我)MongoDB 在 RAM 上处理最多的数据,然后将所有内容刷新到磁盘,在这种情况下,我应该投资一个具有大容量 L2 缓存的 CPU,可能 >40GB 的 RAM 和一个固态硬盘.. 对吗?
我是否应该使用高端 (约 11,309 美元、2 个昂贵的处理器、96GB RAM) 服务器或 2x(约 6,419 美元、2 个昂贵的处理器、12GB RAM) 服务器?
戴尔还可以吗?或者您有更好的建议吗?(我在美国境外,在葡萄牙)
答案1
首先,您需要增加 RAM。您需要的 RAM 取决于您存储的数据量、集合数量、这些集合上的索引、数据访问模式等。有很多因素。
最重要的是拥有足够的 RAM 来将索引保存在 RAM 中。否则,您的性能将受到严重影响,因为当 Mongo 将内存映射文件移入和移出 RAM 时,您的服务器将不断分页。尽管如此,我们还没有看到写入速度受到影响,但其他一切都受到了影响。一旦您的索引不再适合 RAM,处理队列写入、刷新、转储等都会受到严重影响。
所以没有真正的简短答案。基本上,要明智地使用索引。只使用你需要的。如果可以的话,尽量保持集合较小(即尽可能分成多个集合)。上限集合也值得研究。
答案2
使用 64 位机器而不是 32 位机器非常重要。 http://blog.mongodb.org/post/137788967/32 位限制
答案3
使用 MongoDB 时,您需要的是 RAM。然后再多一些 RAM。购买 RAM 不会有什么坏处。
答案4
首先 - 尽可能多地购买 RAM。第二个限制因素是磁盘速度。RAID 有帮助。SSD 有帮助。更多分片有帮助。测量吞吐量与磁盘效率和所需响应时间的比较,然后决定在预算范围内做什么。