Skip to content

Java 诊断总览 ​

诊断页面按故障域组织。先记录现象,再根据证据选择最接近的方向进入,最后回到对应的原理页面验证根因。

症状索引 ​

不要先猜根因属于哪个技术域,从现象开始。

你看到的现象证据先指向入口
CPU 利用率高计算繁忙,还是线程/系统活动导致JVM 诊断 / 并发诊断
堆使用量持续增长、OOM正常分配、存活对象增长还是回收不佳JVM 内存案例 / GC 案例
GC 频繁、停顿长、吞吐下降分配速率、晋升还是 SafePointGC 延迟案例
死锁、锁竞争、线程池饱和锁、队列、线程还是异步任务并发诊断
异步任务丢弃、下游超时调度、参数还是超时级联异步超时案例
接口超时、RT 高、连接失败排队、网络、应用执行还是数据库网络诊断
连接数持续异常(TIME_WAIT/CLOSE_WAIT)连接生命周期、关闭方还是连接池网络诊断
获取连接超时、连接池耗尽、慢 SQL连接需求超供给,还是连接持有过长数据访问诊断
容器 OOMKilled、堆外异常直接内存、容器限制还是资源泄漏堆外与网络案例

相似症状可能来自不同层级。比如「接口超时」既可能是线程池排队,也可能是网络连接、数据库执行或 GC 暂停。证据链才是分流依据,不要只凭症状名称归档。

跨域决策路径 ​

诊断入口不是固定顺序,而是由证据决定。出现故障时先按下面的路径收窄,再进入对应子域。

证据可能把路径带回上一步,初始假设也常被推翻。这不是严格的线性流程,排障常在几个子域之间往返。

JVM 诊断 ​

并发诊断 ​

网络诊断 ​

数据访问诊断 ​

优化与关联专题 ​

下列专题偏向优化方法与决策,不是故障证据定位,放在对应技术模块,供排查后做取舍时参考。

使用方式 ​

  1. 记录症状、时间点和影响范围,不要先猜根因。
  2. 选择对应诊断页,先确认数据来自正确的层级。
  3. 用案例中的信号缩小范围,再回到原理页验证。
  4. 修复后同时验证指标恢复、错误消失和业务结果正常。

Released under the MIT License.