第10章 监控与性能调优:让故障提前显形


第 10 章 · 监控与性能调优:让故障提前显形

章节摘要:MongoDB 的核心健康指标围绕 WiredTiger 缓存、连接数、操作延迟与队列展开;慢查询分析靠 profiler 与 mongotop/mongostat。本章从一次缓存驱逐引发的延迟雪崩讲监控指标体系与慢查询定位方法。读完本章,你能在用户投诉之前看到故障的苗头。

学习目标

  1. 能解释 WiredTiger 缓存命中率与驱逐机制对延迟的影响;
  2. 能读懂 serverStatus 的关键指标并设置告警阈值;
  3. 能配置 profiler 抓慢查询并用 explain 定位根因;
  4. 能用 mongostat、mongotop 做快速现场判断。

核心概念速览

金句:数据库很少突然死掉,它总是先在指标里咳嗽两声——监控就是听懂这两声咳嗽。

子章节导航

  • 10.1 监控指标:缓存驱逐事故,讲核心指标与告警阈值。
  • 10.2 慢查询分析:回归的索引事故,讲 profiler、explain 与调优闭环。

子章节之间的逻辑关系

监控回答"哪里不对劲",慢查询分析回答"具体哪条语句、为什么慢"——前者是雷达,后者是照妖镜。

指标雷达(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 缓存默认值。延伸:把本章的指标接入告警平台后,前九章的多数事故都能提前显形。

作者与出处
原作者:灏天文库
来源:平台策划编纂
整理人: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U