为什么当MongoDB副本集分片成员之一离线时,其他CPU的峰值达到100%?



关闭其中一个 mongodb 碎片成员的电源会导致其他 CPU 提高 100%。

背景:我想在多个 ESXi 上部署一个 mongodb 集群。群集必须抵抗两个组件关闭。

集群架构:蒙戈4.2

  • 5 个配置服务器
  • 3 个查询服务器
  • 分片01:
    • 主要
    • 2 中学
    • 2 仲裁者
  • 分片02:
    • 主要
    • 2 中学
    • 2 仲裁者

问题:

每当我通过删除其中一个成员来测试 HA 时。几分钟后,我注意到其余成员面临 CPU 峰值到 100%,直到我返回丢失的成员。

我进行的测试:

  1. 关闭 1 个副本 -> 个成员 CPU 提高到 100%
  2. 关闭 1 个
  3. 副本和 1 个仲裁节点 -> 个成员 CPU 提高到 100%
  4. 关闭 1 个仲裁程序 -> 成员正常

我已经检查过的事情:

  • 在检查有问题的虚拟机时,我注意到 mongod 是 消耗大部分 CPU 的服务 (99%(。
  • 我用db.currentOp()检查了 mongod 的长时间运行时查询。一切看起来都很好。
  • Mongod.log不包含任何可疑日志。

您应该禁用副本读取关注点"多数"。 https://docs.mongodb.com/manual/reference/read-concern-majority/#disable-read-concern-majority

相关内容

最新更新