线上问题实战录 · 系列目录
叙事框架:现象 → 排查过程 → 根因 → 修复 → 预防 总计 58 篇,已发布 15 篇,43 篇待完善
一、CPU 飙高类
- ✅ 线上 CPU 飙到 100%?从 top 到火焰图的一整套排查链路
- ✅ 一次诡异的高 CPU 排查:线程都在 RUNNABLE 但就是慢
- ✅ 容器中 Java 进程 CPU 使用率不准?哪个指标才是真的
- ✅ 频繁 GC 导致 CPU 飙高——GC 线程耗尽 CPU 的真相
- ✅ 一个小小的正则如何把 CPU 拖垮?——正则回溯灾难
- ✅ 软中断 CPU 飙升:ksoftirqd 线程跑满的排查实录
- ✅ Page Cache 管理不当导致的 load 飙高——内存回收篇
- ✅ CPU 飙到 100% 却找不到高 CPU 进程?短命进程排查
- ✅ 框架级 CPU 陷阱:SpringMVC 参数解析器引发的性能雪崩
- ✅ 锁竞争激烈导致 CPU 飙升——从自旋到锁升级
- ✅ 日志风暴打满 CPU——大量日志输出的隐形杀手
- ✅ 容器 CPU Throttling:受限 CPU 下的性能抖动
二、OOM / 内存泄漏类
- ✅ OOM 不会自动 dump?gdb 在进程挂掉前抢救 HeapDump
- ✅ FullGC 越来越频繁、老年代只增不减——内存泄漏完全指南
- ✅ 堆外内存泄漏排查:Netty DirectByteBuffer 导致的服务宕机
- ⏳ MAT 与 OQL 实战:从 4GB Heap Dump 中定位字符串泄漏
- ⏳ CMS 老年代碎片化导致 Promotion Failed 反复发生
- ⏳ 一次 native memory 泄漏排查:pmap 到 NMT 到 JNI
- ⏳ 线程堆栈泄露导致的应用 Crash 排查
三、FullGC / GC 问题类
- ⏳ 一次诡异的 Safepoint 机制导致应用无响应
- ⏳ GC 选型事故:Parallel Scavenge 在高并发下暂停时间失控
- ⏳ G1 Humongous Allocation 导致 GC 频繁 Full
- ⏳ User 线程加锁导致 VM 线程 Safepoint 超时——JT 与 GC 耦合排查
四、接口慢 / 延迟飙高类
- ⏳ 接口突然慢了 20 倍,从 JFR 火焰图到一行代码的修复
- ⏳ p99 飙升但 avg 正常?长尾请求根因定位方法论
- ⏳ 一次外部依赖超时引发的线程池饥饿级联故障
五、线程 / 线程池问题类
- ⏳ 线程池拒绝策略触发后业务补偿逻辑缺陷导致数据不一致
- ⏳ 线程池满了?拒绝策略选型失误导致任务丢失
- ⏳ ForkJoinPool 在工作窃取模式下任务分配不均问题
- ⏳ Tomcat 最大线程数设大了:请求排队过多导致内存暴涨
六、死锁 / 锁问题类
- ⏳ 数据库连接池内部死锁导致应用雪崩
- ⏳ 读写锁降级导致的死锁——ReadWriteLock 写锁饥饿
- ⏳ StampedLock 在乐观读模式下的数据不一致
- ⏳ 数据库行锁升级表锁的生产事故排查
- ⏳ 多个线程同时 INSERT ON DUPLICATE KEY UPDATE 引发的死锁
- ⏳ 数据库连接池连接泄漏导致连接数打满
七、网络连接类
- ⏳ 客户端报连接超时、服务端说没收到——TCP 握手丢包分析
- ⏳ HTTP 连接池超时设置不当导致连接复用冲突
- ⏳ 四层 SLB 连接空闲超时导致客户端与服务端状态不一致
- ⏳ DNS 解析异常导致服务发现失败
八、日志风暴类
- ⏳ 日志打印太多打挂应用?一次日志风暴的根因定位
- ⏳ 日志框架配置冲突导致磁盘写满
- ⏳ 日志异步写入器瓶颈引发的服务线程阻塞
九、磁盘 / 存储类
- ⏳ 文件描述符泄漏导致日志轮转失效
- ⏳ 磁盘 IO 打满导致接口响应极慢分析
- ⏳ 日志轮转失效导致磁盘爆满
十、配置 / 类加载类
- ⏳ 配置热更新未生效——Spring Cloud Config 刷新机制排查
- ⏳ 线上小版本升级总能引入诡异类冲突——类加载器视角排查
- ⏳ YAML 多环境配置覆盖顺序导致的意外行为
- ⏳ 自定义 Starter 自动配置条件判断失误导致 Bean 不加载
十一、压测类
- ⏳ 双十一全链路压测,从 Perf 火焰图发现框架级 Bug
- ⏳ 压测时 TPS 上不去,如何分层定位瓶颈?
十二、进程异常类
- ⏳ 容器 CPU Throttling 导致健康检查超时引发滚动重启
- ⏳ cgroup 内存限制与 JVM 内存感知不一致导致的容器 OOM
- ⏳ 应用突然无响应但进程还在——一次 JVM 长时间停顿排查
十三、混合 / 全链路类
- ⏳ "一个请求的一生":从 DNS 到 DB 全路径排查一次接口超时
- ⏳ 微服务调用链路超时:从网关到下游的全链路追查
- ⏳ 线上徒手撕 Bug:没有 Arthas 的年代怎么在线 Debug
最后更新:2026-06