RDS MySQL 指标知识图谱

一条 SQL 的旅程 × 指标健康/危险形态字典(通用)· 卡片底行为本例实测 · 详细解读见 docs/rds/2026-09-25-rds-metrics-guide.md

SQL 读页 刷页 WAL 兜底支撑 一条 SQL 的生命周期 · 指标健康/危险形态分布 卡片行:🟢 健康形态 · 🔴 危险形态 · 实 = 本例实测(DAS 24h) 应用 / 客户端 发起 SQL 的读者 · 业务侧连接池 比喻:来图书馆借书的人 ① 接入层 · 营业厅(会话与连接) ② Server 层 · SQL 加工车间 ③ InnoDB 引擎 · 借阅台 ④ 磁盘 · 书库(持久化) 会话 / 连接总数 🟢 稳定基线 + 活跃≈0 = 连接池待命 🔴 爬升不回落=泄漏 · 打满=拒新连接 实 230–250 待命 · 利用率峰 13% ✓ 活跃会话 / threads_running 🟢 ≈ 0 或远小于 CPU 核数 🔴 持续远超核数=排队:CPU 不足或等锁 实 ≈ 0 ✓ 真实并发极低 MDL 锁(DDL 堵车探测器) 🟢 ≈ 0 是常态 🔴 一旦非零=事故级:DDL 与查询互堵 实 ≈ 0 ✓ 形态指纹(怎么识别) 🟢 平线 = 稳态 🔴 骤降骤升=重启/切换 · 缓坡=业务涨 实 09:00 骤降回升 ⚠ 对照变更记录 吞吐 QPS / TPS 🟢 与业务曲线吻合 · 读多写少常见 🔴 突增=循环调用/击穿 · 骤降=上游挂 实 峰 250/20 · 夜 02:00/05:30=定时任务 慢查询 🟢 偶发小刺 🔴 某天起持续=发布引入烂 SQL · 缓坡=索引衰减 实 白天偶发 1–2 条/5min 全表扫描 select_scan 🟢 ≈ 0(都走索引) 🔴 常驻=固定烂 SQL · 突增=新查询没索引 实 常驻 4.5–7.5/s ⚠ 头号嫌疑人 临时表 / 排序 🟢 平线 = 没人摊草稿纸 🔴 持续增长=无索引 JOIN / 大 GROUP BY 实 平线 ✓ · sort_rows 峰 2.6k/s Buffer Pool 命中率 🟢 > 99% 贴顶平线 = 桌上总有书 🔴 缓降=热点超池→扩内存 · 骤降=批量扫描 实 ≈ 100% ✓ · 数据 180GB vs 池 2.7GB 脏页(改了没誊回书库) 🟢 低-中位小锯齿 = 正常改-刷循环 🔴 高位不落=写猛刷慢 · 大锯齿=检查点风暴 实 峰 17.5k 页 ≈ 池 10% ✓ 逻辑读请求 💡 数值再大也是内存操作,不打盘 🔴 判断压力看物理读与命中率,不看它 实 峰 175k/s(别被吓到) 行锁 🟢 ≈ 0 = 没人抢笔 🔴 持续等待=长事务/热点行 · 死锁=顺序乱 实 ≈ 0 ✓ 磁盘使用率 🟢 < 70% 平稳缓坡 🔴 ≥ 90%=只读锁定! · 暴涨=日志失控 实 ≈ 90% 🔴 唯一在验风险 存储空间构成 🟢 ins_size 平稳增长可规划 🔴 日志失控:general log / relaylog 查配置 实 ins_size ≈ 180GB 业务数据为主 IOPS(每秒读写趟数) 🟢 跟业务起伏 · 趟数≠斤两 · 随机比顺序贵 🔴 打满分两病因:QPS 同涨 vs QPS 平 实 峰 6% ≈ 600/10000 ✓ Redo / fsync(登记本与保险柜) 🟢 低平 + 批量写小刺 🔴 fsync 高 + IO 贴顶 = 磁盘写瓶颈 实 redo 峰 732KB · 写负载小 ✓ 资源底座 · 为每一层供电(通用状态 + 本例实测) CPU 使用率 🟢 <50% 平稳 · 🟡 持续60–70% 找真凶 · 🔴 >90% 全库变慢 实 < 10% 偶发尖刺 ✓ 内存(预分配模型) 🟢 平即健康 · 🟡 爬升不回落=泄漏/堆积 · 🔴 逼近100%=OOM 实 48% 平稳 ✓ 网络流量 🟢 跟业务吻合 · 🟡 出尖峰=大导出 · 🔴 与QPS不匹配=超大结果集 实 峰 1.17 MB/s ✓ 风险红线 · 看到就行动(通用 + 本例状态) 🔴 磁盘 ≥ 90% → 实例只读锁定,写入全停 本例 ≈ 90%:正在发生(唯一在验风险) 行动:存储自动扩容 + 空间分析找大表 🟡 连接打满 → 拒绝新连接 前兆:基线爬升不回落 = 连接泄漏 行动:kill 空闲会话 + 查应用连接池 🟡 命中率 < 95% → 缓存失效 前兆:骤降 = 批量全表扫描冲垮缓存 行动:限制批量任务 / 扩内存规格 Legend 接入层 / 连接 Server 层 / SQL InnoDB / 缓存与锁 磁盘 / 持久化 客户端 / 底座资源 风险红线 SQL 数据流 支撑路径

三步阅读心法

  • • 先水位类(CPU/内存/磁盘/IOPS),再行为类(QPS/慢查询/锁)
  • • 先看形态(平、刺、爬升),再看数值
  • • 多图交叉验证:02:00 尖峰在 QPS/IOPS/刷盘同时抬头 = 定时任务
  • • 单位小抄:k=千 · m=毫(900m=0.9)· 累计值看斜率

八种曲线形态(通用,任何监控图适用)

  • • 平线=稳态 · 尖刺=一次性动作 · 周期波峰=业务/任务节奏
  • • 阶梯=发生了变更 · 锯齿=生成-清理循环(谷底抬高=净涨)
  • • 爬升不回落=泄漏,最危险 · 骤降骤升=重启/切换 · 贴顶=饱和临界
  • • 单图定罪是大忌:异常形状 + 同时间点多图联动 = 定位真凶

本实例 24h 快照

  • • 2 核 4G · 磁盘 195GB · IOPS 上限 10000 · 连接上限 2000
  • • CPU < 10% · 命中率 100% · 行锁 0 · 活跃会话 ≈ 0
  • • 连接 250(13%)待命 · QPS 峰 250 · 读写比 6:1 读多写少
  • • select_scan 常驻 4.5–7.5/s = 慢查询头号嫌疑人

红线与行动

  • • 磁盘 ≈ 90%:开自动扩容 + DAS 空间分析找大表(紧急)
  • • select_scan 常驻:慢查询日志捞 SQL 补索引
  • • 确认 02:00 / 05:30 定时任务与 09:00 会话骤降的归属
  • • 加告警:磁盘 80% · 连接 60% · 命中率 95%