在一台服务器上运行多个MongoDB碎片有什么好处/缺点吗?

在一台服务器上运行多个MongoDB碎片有什么好处/缺点吗?,mongodb,Mongodb,我目前运行的是一个传统的MySQL主/从数据库,大约有90GB的数据。我们的应用程序上的流量正在迅速增加,而且这种设置已经显示出放缓的迹象。我非常愿意尝试MongoDB,我对自动切分功能特别兴奋 但是,我目前只有2台(专用)DB服务器可供使用,其中一台肯定要用于复制。所以我的问题是: 如果我在同一台服务器中以碎片的形式运行多个MongoDB实例,我是否真的会从拥有更小的碎片数据集中获益?或者这会不会因为负载/内存需求的增加而导致性能下降?为什么不在两台服务器上运行shard,并在每台服务器上都有

我目前运行的是一个传统的MySQL主/从数据库,大约有90GB的数据。我们的应用程序上的流量正在迅速增加,而且这种设置已经显示出放缓的迹象。我非常愿意尝试MongoDB,我对自动切分功能特别兴奋

但是,我目前只有2台(专用)DB服务器可供使用,其中一台肯定要用于复制。所以我的问题是:


如果我在同一台服务器中以碎片的形式运行多个MongoDB实例,我是否真的会从拥有更小的碎片数据集中获益?或者这会不会因为负载/内存需求的增加而导致性能下降?

为什么不在两台服务器上运行shard,并在每台服务器上都有一个复制另一个shard的mond实例?这会给你分片和冗余。如果一台服务器宕机,另一台服务器将拥有该复制副本


如果每个mongod instances数据文件夹位于不同的磁盘上,或者如果整个数据集适合内存并且您有多个内核,则分片可能很有用。

MongoDB的Kristina Chodorow有一个。她提到,你几乎永远不会想要切分,至少在你尝试复制集之前是这样。阅读她关于副本集的系列文章:,

从2节点副本集开始,看看Mongo是否提供了更好的插入/更新速度。如果写入速度更快(可以更快),那么您将能够处理更多的负载。在提高性能方面,处理更多负载可能是您所需要的

需要在服务器中进行分片的唯一原因是,如果您不知何故需要进行更多的写入,而您还没有将IO最大化(这是非常罕见的)


我建议只需从Mongo副本集开始(支持主/从,但“不太好”)。

该博客已从snailinaturtleneck.com迁移到kchodorow.com。请使用档案更新链接。