线上问题实战录 · 系列目录
叙事框架:现象 → 排查过程 → 根因 → 修复 → 预防 总计 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 导致的服务宕机
- ⏳ Metaspace OOM:动态类加载/反射/CGLIB 是凶手
- ⏳ ThreadLocal 用完不 clean?连接池线程的内存泄漏故事
- ⏳ 一次 native memory 泄漏排查:pmap 到 NMT 到 JNI
- ⏳ 线程堆栈泄露导致的应用 Crash 排查
三、FullGC / GC 问题类
- ⏳ G1 还是 ZGC?一个线上 RT 波动的 GC 选型改造实录
- ⏳ CMS GC 频繁 promotion failed 排查
- ⏳ 一次诡异的 Safepoint 机制导致应用无响应
- ⏳ YoungGC 耗时异常:从 GC 日志到 OS 层缺页中断排查
四、接口慢 / 延迟飙高类
- ⏳ 接口突然慢了 20 倍,从 JFR 火焰图到一行代码的修复
- ⏳ p99 飙升但 avg 正常?长尾请求根因定位方法论
- ⏳ 一次外部依赖超时引发的线程池饥饿级联故障
五、线程 / 线程池问题类
- ⏳ 线程池队列积压了 10 万任务,不重启怎么诊断?
- ⏳ 线程池满了?拒绝策略选型失误导致任务丢失
- ⏳ Executors.newCachedThreadPool 创建了 10 万线程——无界线程池陷阱
- ⏳ 核心线程数设错了:过大导致资源竞争,过小导致队列积压
六、死锁 / 锁问题类
- ⏳ 死锁检测三板斧:jstack + 代码审查 + lock chain 分析
- ⏳ ReentrantLock 与 synchronized 选型不当导致性能雪崩
- ⏳ 读写锁 ReentrantReadWriteLock 锁降级导致死锁
- ⏳ 数据库行锁升级表锁的生产事故排查
- ⏳ 间隙锁导致的并发插入死锁
- ⏳ 热点行更新引起的锁等待雪崩
七、网络连接类
- ⏳ 客户端报连接超时、服务端说没收到——TCP 握手丢包分析
- ⏳ TCP 连接异常断开:RST 包全链路定位
- ⏳ 一次 keepalive 配置不当导致连接泄漏
- ⏳ 容器网络不通?从 CNI 到 iptables 逐层排查
八、日志风暴类
- ⏳ 日志打印太多打挂应用?一次日志风暴的根因定位
- ⏳ 日志框架配置冲突导致磁盘写满
- ⏳ 日志异步写入器瓶颈引发的服务线程阻塞
九、磁盘 / 存储类
- ⏳ 磁盘写满了不光因为日志——Linux 存储排查全景
- ⏳ 磁盘 IO 打满导致接口响应极慢分析
- ⏳ 日志轮转失效导致磁盘爆满
十、配置 / 类加载类
- ⏳ 配置中心的值和预期不一样?Arthas ognl 直接查内存
- ⏳ 线上小版本升级总能引入诡异类冲突——类加载器视角排查
- ⏳ @Value 配置注入失败:占位符未解析
- ⏳ Spring Boot Auto-Configuration 加载顺序导致 Bean 覆盖
十一、压测类
- ⏳ 双十一全链路压测,从 Perf 火焰图发现框架级 Bug
- ⏳ 压测时 TPS 上不去,如何分层定位瓶颈?
十二、进程异常类
- ⏳ Linux OOM Killer 杀了你的 Java 进程?日志里有线索
- ⏳ 容器中 Java 进程被 killed 但 dmesg 什么都没有
- ⏳ 应用突然无响应但进程还在——一次 JVM 长时间停顿排查
十三、混合 / 全链路类
- ⏳ "一个请求的一生":从 DNS 到 DB 全路径排查一次接口超时
- ⏳ 微服务调用链路超时:从网关到下游的全链路追查
- ⏳ 线上徒手撕 Bug:没有 Arthas 的年代怎么在线 Debug
最后更新:2026-06