参考链接:
1.https://blog.51cto.com/u_16099217/10523591
2.https://www.cnblogs.com/sxdcgaq8080/p/10695101.html
prod环境的一个spring boot 服务出现了假死,表现就是所有接口均pending,但日志、内存、CPU利用率均正常。其它spring服务正常。
一、数据收集过程
1. dump 环境保留现场
常用工具集:
- jps-输出JVM中运行的进程状态信息
- jstack-查看某个java进程内的线程堆栈信息
- jmap-查看堆内存使用状态,一般结合jhat使用
- jstat-JVM统计监控工具
- jhat-用来分析jvm堆内存的内存转储
jstack dump
jmap dump内存
查找java程序的pid
ps -ef|grep java
执行jstack dump,数字是进程PID。
jstack 953539 > dump.log
使用jmap生成dump文件
jmap -dump:format=b,file=serviceDump.dat 953539
下载dump分析工具,分析
常见工具:
- IBM Heap Analyzer
二、数据分析过程
线程jstack分析工具
分析网站:
1. https://jstack.review/
2. https://chatgpt.com/
内存dumpVisualVM分析工具
安装插件