JAVA OOM问题定位思路

285 阅读1分钟
  1. 查看jvm基本配置,包括堆栈大小垃圾收集器等是否合理
  2. 使用jmap查看对象统计信息,堆栈占用信息 ,如果有某个类大量出现,例如几万个,可以直接查看是否内存泄露
  3. 查看GC信息。是否有频繁FullGC,通常一天几次是正常的
  4. 查看直接内存和对外内存占用,如果堆外内存较多,考虑是否有错误使用NIO
  5. 如果内存占用不大,却在不停增长,使用jcmd baseline查看内存变化量
  6. 使用arthas的仪表盘查看变化量
  7. 测试环境使用jprofiler或者jvisualvm实时查看