章节摘要:MongoDB 的核心健康指标围绕 WiredTiger 缓存、连接数、操作延迟与队列展开;慢查询分析靠 profiler 与 mongotop/mongostat。本章从一次缓存驱逐引发的延迟雪崩讲监控指标体系与慢查询定位方法。读完本章,你能在用户投诉之前看到故障的苗头。
金句:数据库很少突然死掉,它总是先在指标里咳嗽两声——监控就是听懂这两声咳嗽。
监控回答"哪里不对劲",慢查询分析回答"具体哪条语句、为什么慢"——前者是雷达,后者是照妖镜。
指标雷达(10.1) ──► 慢查询照妖镜(10.2) │ │ 缓存·连接·队列 profiler · explain · 调优闭环
10.1 的复盘认真还原了周三尖刺的三轮定位——两轮弯路都源于面板把数据库自身指标藏在二级页面,这个教训直接可以搬进任何团队的监控建设;修复三板斧按性价比排序,核心启示是驱逐事故的解法在减少不该进缓存的数据。10.2 的复发复盘把矛头指向流程:没有查询画像基线,再规范的修复也会被下一个人改写绕开;失效写法对照表是评审可直接引用的工具。
离开本章前逐条自查:能否说出缓存占用水位与驱逐策略切换的关系;能否为自己的环境推导一组告警阈值而不是抄模板;能否在到场五分钟内用一条 serverStatus 或 mongostat 判断是不是驱逐或队列问题;能否完整走一遍抓语句、explain 三问、改写、回归验证的闭环;能否对着失效写法对照表检查自己项目的十条最热查询;能否说清"先判根因再动手"在资源性慢与计划性慢之间的分岔。答不上的条目,回对应小节把三轮定位与复发复盘重读一遍。
本章指标体系其实是前九章事故的通用探测器,值得把映射关系列直白:第 3 章的全表扫描先表现为 keysExamined 与 nReturned 比值恶化;第 4 章的聚合内存超限在缓存 dirty 与驱逐指标上显形;第 6 章的选举风险提前量是复制延迟与心跳抖动;第 7 章的热点分片先以单分片队列堆积露头;第 9 章要求把证书有效期也纳入告警。把每项告警对应到"它预示哪章的哪种事故",值班同学看到告警时就不是查文档而是翻年鉴——监控面板即事故索引,这也是故障年鉴写法的收口。
如果只允许保留一屏监控,按这个顺序摆:缓存占用与驱逐速率、读写队列、连接数、操作延迟分布、复制延迟。前两项是 MongoDB 特有又最先出问题的读数,必须首屏;后三项是通用但必要的兜底。指标不怕少,怕的是摆错层级——周三尖刺那两轮弯路,代价就是面板布局这一个决定。
前置:第 3 章索引、第 1 章提到的 WiredTiger 缓存默认值。延伸:把本章的指标接入告警平台后,前九章的多数事故都能提前显形。