You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MongoDB 4.4 PSA集群Secondary节点磁盘利用率异常过高求助

MongoDB 4.4 PSA集群Secondary节点磁盘利用率异常的可能原因
  • 监控指标计算逻辑偏差
    你使用的asPercent(perSecond(*.*.diskio.io_time),1000)计算方式存在统计维度问题:io_time是设备有I/O请求排队的毫秒数,perSecond取每秒累计排队时间后转成百分比,这个值反映的是I/O排队时间占比,并非实际磁盘利用率(通常指磁盘处于繁忙状态的时间占比)。Secondary节点的复制操作I/O请求更零散,队列等待时间更长,会导致该计算值被放大,而iotop观测到的是进程实际磁盘繁忙占比,二者统计逻辑不同,这是最核心的原因。

  • 主从节点I/O模式差异
    Primary节点的批量写入、更新属于顺序/批量I/O,磁盘处理效率高,排队时间短;而Secondary节点应用oplog时是单条回放操作,属于随机I/O。随机I/O的队列等待时间远高于批量顺序I/O,会拉高io_time指标,但实际磁盘繁忙时间(iotop的IO%)并未同步升高,和你观测到的现象完全匹配。

  • 磁盘调度或队列配置差异
    即使主从硬件配置一致,也可能存在磁盘调度算法(如cfq、deadline、noop)或磁盘队列长度配置的差异。如果Secondary节点使用的调度算法更倾向于等待请求队列填充,会增加io_time的累计值,但实际磁盘利用率并没有同步上升。

  • 采集粒度与观测窗口差异
    Telegraf的指标采集间隔通常为10-30秒,是时间段内的平均值;而iotop是实时采样(默认每秒刷新),且你仅监测了1分钟。如果Secondary节点的io_time是在采集间隔内的短时间窗口出现峰值,会拉高整体平均值,但iotop可能未捕捉到持续高占比,导致两者数据呈现差异。

  • Oplog应用的额外I/O开销
    Secondary节点应用oplog时,除了数据写入,还会触发索引更新、一致性校验等额外操作。这些操作的I/O请求更细碎,会增加队列等待时间,但单进程的IO%被分散到多个小请求中,表现为iotop的低占比,但io_time累计值偏高。


内容的提问来源于stack exchange,提问作者Fume

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 19:56:07