什么硬件使得一个好的MongoDB服务器? 在哪里得到它?

假设您现在在dell.com上,并且您正在购买一台服务器来为您的小型创业公司运行MongoDB数据库。 你将不得不每分钟处理数以万计的写入和读取(但小的对象)。 你会去2处理器? 更多地投资于RAM?

我听说过(纠正我,如果我错了),MongoDB处理最多它可以在RAM上,然后刷新所有的磁盘,在这种情况下,我应该投资于一个具有大型二级caching,可能> 40GB的RAM和一个固态驱动器..对不对?

(高达11,309美元,2个昂贵的处理器,96GB内存)服务器还是2个(约6,419美元,2个昂贵的处理器,12GB内存)服务器,我会更好吗?

戴尔是好还是你有更好的消化? (我在美国以外的葡萄牙)

最初,你会想要加强RAM。 您需要的RAM取决于您要存储的数据量,集合数量,这些集合上的索引,数据访问模式等。很多因素。

最重要的是有足够的内存来保持你的索引在RAM中。 否则,你的性能会受到很大的影响,因为你的服务器会一直页面,而Mongo移动内存映射文件进出内存。 尽pipe如此,我们还没有看到写入速度受到影响,但其他一切都是如此。 处理写入队列,冲洗,转储等等,一旦你的索引不再适合RAM的戏剧性命中。

所以没有真正的简短答案。 基本上,你的指标是聪明的。 只使用你所需要的。 如果可以的话,保持藏品不多(例如,在可以的地方分成多个)。封面藏品也很有趣。

使用不是32位的64位机器非常重要。 http://blog.mongodb.org/post/137788967/32-bit-limitations

有了MongoDB,你想要的是内存。 然后更多的内存。 购买内存不会伤害。

如果你正在购买生产硬件的阶段,那么你正在运行的应用程序必须已经写好了,对吧? 因此,在您拥有的硬件上运行应用程序并采取指标。 逐渐改变一些组件,并采取更多的指标。 完成后,您将知道哪些重点对您的应用程序和场景最为重要。

首先 – 尽可能多地购买RAM。 第二个限制因素是磁盘速度。 RAID有帮助。 SSD有帮助。 更多的碎片帮助。 测量吞吐量与磁盘效率和所需响应时间的比较,然后决定在您的预算内做什么。

我想知道一个Linux集群解决scheme是不是更好,更便宜的select。

MongoDB允许您通过多台服务器分发数据。 这是不可能的,一个喇叭服务器。

我认为MongoDB是在发现在喇叭服务器上部署关系数据库的程度不够好之后所采取的下一步措施之一。

数以万计写每分钟是没有什么。 你可以在体面的硬件上每秒获得50.000或更多的写入。 硬件规格真的取决于你想要做什么。 一般来说,大型数据库和快速IO系统的RAM足够重要

在devise硬件之前,build立一个坚实的基线非常重要。 一般来说,希望有经验的mongoDB人员能问这些问题,然后再考虑回答你的问题。

当前的应用程序统计(如果有)

  • 总logging到目前为止?
  • 开始存储估计?
  • 预期的增长/月份?
  • 平均文档大小?

数据摄取工作量

  • 新的插入/每天,高峰和平均每秒?
  • 每秒更新/日,峰值和平均值?
  • 读/日,高峰和平均/秒?
  • 每个查询返回的平均文档数量:70
  • 删除/天,高峰和平均/秒:无
  • 会有批量加载/批量更新吗? 如果是这样,多大和多久?
  • 会有多less种不同types的文件?
  • 每个有多less?
  • 你期望你的文件看起来像什么样(文档样本)?

查询模式和性能期望

  • 读取响应SLA?
  • 写入响应SLA?
  • 读取是基于范围的还是随机的?

预期访问模式

  • 二级索引的数量是多less?
  • 属性的数量?
  • sorting条件?
  • 单身还是复合?