看到 OOM、GC、线程安全、类加载问题,顺藤摸瓜找到根因
jmap -dump 导堆快照 → MAT 看 Dominator Tree → 按大小排序,第一个就是罪魁jstat -gcutil 看 YGC/FGC → 哪个涨得快就是哪个问题mvn dependency:tree 看| 现象 | 本质 | 第一反应 |
|---|---|---|
| OOM | 堆装不下了 | 突然爆(大对象)还是慢涨(泄漏),jmap+MAT |
| GC 频繁 | 垃圾产生快/回收不掉/空间小 | jstat 看 YGC/FGC,调堆/优化对象/找泄漏 |
| 并发出错 | 共享+非原子=竞态 | 加锁/原子类/ThreadLocal/并发容器 |
| 找不到类 | 双亲委派加载失败 | 依赖缺失/版本冲突/打包漏了 |
| 事务失效 | AOP 代理被绕过 | this 调用/非 public/异常被吞 |