跳至主要內容
⑥JVM JVM故障问题排查

学习核心

  • 内存泄漏问题排查
    • GC引起CPU飙升问题排查(5个步骤一步步定位)
    • 现场保留(瞬时信息和历史信息的记录保留,后续进行跟踪分析)
      • 常用工具:jinfo、jstat、jstack、jhsdb(jmap)等工具,尤其是jmap(分析处理内存泄漏的利器)
    • 一个卡顿实例分析(结合卡顿实例,掌握分析思路和实践过程)
      • 高并发业务场景中启用swap造成的服务卡顿
    • 内存泄漏 VS 内存溢出
      • 区分内存泄漏(原因)和内存溢出(结果)概念
      • 内存泄漏现象
      • 内存泄漏案例(HashMap使用不当、文件操作资源未及时释放、JavaAPI使用不当、ThrealLocal使用误区)

holic-x...大约 58 分钟JAVA基础
JVM故障实践之GC篇

案例:ThreadLocal使用不当,导致内存泄漏,进而触发OOM

1.场景分析

故障问题排查说明

​ 针对CPU飙升问题,可按照相关步骤进行排查,如果确认是由于线程大量GC导致的CPU飙升问题,则可进一步进入GC问题排查

步骤 指令 说明
1 top 查看占用cpu高的进程信息
2 jstat -gcutil pid 查看gc状况
3 jmap -dump:format=b,file=name.dump pid 导出dump文件
4 visualVMMAT工具分析 用visualVM分析dump文件

holic-x...大约 13 分钟JAVA基础