Mak*_*yuk 4 performance mongodb
我正在尝试改进 MongoDB 服务器的 oplog,因为目前它覆盖的时间比我想要的要少(我暂时不打算增加 oplog 文件大小)。我发现oplog集合中有很多noops记录 - {“op”:“n”}+“o”上的整个文档。它们可能占用大约 20%-30% 的物理 oplog 大小。
我怎样才能找到原因,因为它似乎不好?
我们使用 MongoDB 3.6 + NodeJS 10 + Mongoose
ps 它出现在许多不同的集合和用例中,因此很难理解所有这些项目背后的应用程序逻辑是什么。
MongoDB 3.4+ 副本集中预计会进行无操作写入,以支持Max Staleness 规范,该规范可帮助应用程序避免从过时的辅助副本中读取数据,并提供更准确的复制延迟度量。这些无操作写入仅在主节点空闲时发生。空闲写入间隔当前不可配置(如 MongoDB 4.2 所示)。
Max Staleness 规范包括一个示例场景和更详细的理由,说明为什么主节点必须编写定期无操作以及其他设计决策。
设计原理的相关摘录:
空闲主节点必须每 10 秒执行一次无操作 (idleWritePeriodMS),以保持辅助节点的 LastWriteDate 值接近主节点的时钟。no-op 还使 opTimes 接近主数据库的操作时间,这有助于 mongos 选择一个最新的辅助数据库来在 CSRS 中读取。
当虚假延迟峰值得到解决时,像 MongoDB Cloud Manager 这样绘制复制延迟图表的监控软件也会受益。
| 归档时间: |
|
| 查看次数: |
1213 次 |
| 最近记录: |