【问题标题】:Mongodb write performance/load primary vs secondaryMongodb 写入性能/负载主要与次要
【发布时间】:2014-12-02 16:16:38
【问题描述】:

在复制的 Mongodb 环境中,辅助节点上的写入性能/负载是否与主节点相同?如果有,或者没有,为什么?

编辑:通过对辅助节点的写入,我指的是写入从主节点自动传播到辅助节点。

Edit2:为了帮助引导对话,http://docs.mongodb.org/manual/core/replica-set-sync/#multithreaded-replication 可能会建议从初级到次级的写入性能可能会更好,因为它们是在 batch 中执行的。

【问题讨论】:

  • 不能在辅助节点上写,只能在主节点上写
  • 是的,这是真的,但写入会传播

标签: mongodb


【解决方案1】:

如果load 仅指在孤立或非高峰系统中的writes,那么它一定是一个无趣且相似的performance/write。几乎谁在乎。但是,在您有并发读写的工作系统中,则没有。因为如果您使用“次要”或“次要首选”的'read preference'(见鬼,除了“主要”之外的任何内容),可以更改 performance/readwrite。在这种情况下,一个具有 11 个辅助节点和 1 个主节点的副本集可以清楚地看到,任何单个辅助节点的 cpu/内存/磁盘/等竞争不仅比单个主节点还要小。回想一下,默认模式在主节点上是残酷的。这里的辅助节点仅用于冗余与高可用性。

主要默认模式。从当前副本集读取的所有操作 主要的。

可以想象一个 RAID 系统,其中镜像增加了冗余,而条带化增加了性能。 (确实,不完全相同的机制,但从用户的观点来看,它在读取方面的结果相似。分片更接近于带条带化的 RAID)使用“主要”的默认读取首选项仅点击镜像;使用“次要”的读取偏好,您可以获得更大的吞吐量。

【讨论】:

  • 磁盘争用并不是真正的正确术语。由于所有这些操作都发生在内存映射文件中(使用 mmapv1 存储引擎),因此可能根本没有磁盘争用。更合适的术语是“资源争用”,因为根据各种因素可能会在多个地方发生争用,例如:工作集大小、可用内存、正在执行的每个操作的大小、索引、正在执行的操作类型等.
猜你喜欢
  • 1970-01-01
  • 2012-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多