2014-12-02 50 views
0

在复制的Mongodb环境中,副本的写入性能/负载是否与主节点相同?如果是的话,为什么?Mongodb写入性能/负载主要与次要

编辑:通过写入到次要我指的是从主要到次要写入的自动传播。

编辑2:为了帮助指导对话http://docs.mongodb.org/manual/core/replica-set-sync/#multithreaded-replication可能表明,从初选到辅助的写入性能可能会更好,因为它们在batch中执行。

+0

您不能在辅助节点上写入,只能在主节点上 – ccheneson 2014-12-02 16:19:47

+0

是的,这是true,但是写入传播 – uniball 2014-12-02 16:49:49

回答

0

如果按load您的意思是在一个孤立或非高峰系统只有writes那么它必须是一个无趣和类似performance/write。几乎是谁在乎。但是,在并行读取和写入的工作系统中,不会。因为如果您使用'read preference'“secondary”或“secondary preferred”(heck,除“primary”之外的任何内容),则可以更改performance/readwrite。在这种情况下,具有11个辅助节点和1个主节点的副本集可以清楚地看到,任何单个辅助节点都只有一小部分的cpu/memory/disk/etc竞争,不仅仅是磁盘争用而是单个主节点。回想一下,默认模式在主服务器上是残酷的。这里的次级存在只是为了冗余与高可用性。

primary默认模式。所有操作都从当前副本集 中读取。

人们可以想到一个RAID系统,通过这种系统,镜像可以提高冗余度,而条带化可以提高性能。 (确实,不完全一样的机制,但是从用户的pov来看,在读取方面它有类似的结果。分片更接近于带有条带的RAID)使用'主'的默认读取首选项只能进入镜像;使用“次要”的读取首选项,您可以获得更高的吞吐量。

+0

磁盘争用并非真正的正确术语。由于所有这些操作都是在内存映射文件(使用mmapv1存储引擎)内发生的,因此根本没有磁盘争用。更合适的术语将是“资源争用”,因为存在争用可能发生的几个地方取决于各种因素,例如工作集大小,可用内存,正在执行的每个操作的大小,索引,正在执行的操作的类型等。 – 2014-12-02 19:11:16

+0

这个词汇超出了我的想法。真的够了。 – 2014-12-05 21:15:04