Linux下监控MongoDB性能的实用方案
一 快速上手的内置工具
二 系统层面的资源监控
三 长期监控与可视化
四 关键指标与告警阈值示例
| 维度 | 核心指标 | 常用命令/来源 | 告警参考 | 说明 |
|---|---|---|---|---|
| 吞吐 | insert/query/update/delete ops/s | mongostat | 突增/骤降、持续接近上限 | 反映业务负载变化 |
| 连接 | connections.current / connections.available | db.serverStatus() | 接近 maxIncomingConnections | 连接耗尽会导致失败 |
| 延迟 | opLatencies.commands/reads/writes.avg ms | db.serverStatus() | 明显上升 | 常与慢查询、锁争用相关 |
| 缓存与内存 | wiredTiger.cache.、mem.、page faults | db.serverStatus() | cache 命中率下降、page faults 上升 | 命中低提示内存/工作集不足 |
| 磁盘IO | await、r/s、w/s、util% | iostat -x 1 | util% 持续高、await 大 | 磁盘成为瓶颈 |
| 复制 | replSetGetStatus metrics(复制延迟/心跳) | rs.status() | 复制延迟持续增长 | 影响一致性与故障切换 |
| 慢查询 | slowms、totalKeysExamined、totalDocsExamined | 慢查询日志 / Profiler / explain() | 扫描文档过多、无索引 | 需优化查询与索引 |
| 以上指标与命令覆盖了资源、数据库与复制健康度的主路径;阈值应结合基线动态调整。 |
五 慢查询定位与优化