我已经在两个100%相同的服务器(硬件和软件)上设置了mongodb副本集。
我正在运行写有mongodb的webcraper。现在,我可以看到作为独立实例的性能更好。
作为独立的mongodb,抓取过程运行了2.5小时,最多运行150次。作为副本集,抓取过程将运行6个小时,最多进行100次操作。
这是副本集的通常行为吗?
查看我的grafana仪表板的屏幕截图。
是,这是预期的行为,来自官方docs
主节点接收所有写操作。副本集只能具有一个能够确认写入的主副本...
表示添加的节点仅在严格谈论性能时会增加开销,因为Mongo必须将其与主节点同步。
这是预期的,因为复制的主要用途是故障转移。
如果您报废并且希望提高性能并且不关心意外错误,则可以将writeConcernMajorityJournalDefault副本配置更改为false
。
[writeConcernMajorityJournalDefault设置为false时,MongoDB不会等待w:在确认写入之前,将“多数”写入写入磁盘日志。因此,如果给定副本集中的大多数节点发生瞬时丢失(例如崩溃和重新启动),多数写入操作可能会回滚。