1. 先用jps命令查出java进程号
2. 使用top命令查出该进程使用cpu最高、占用内存最大的线程(嫌疑最大)
这里我们选取微服务项目中的主进程24240
top -Hp 24240 -d 1 -n 1
3. 将该线程号转为16进制(线程号的显示用的是16进制)
24240 = 5EB0
4. 使用jstack命令查询该线程堆栈
jstack -l 24240 | grep 5EB0 -A 20
5. 使用jmap显示堆中对象的统计信息
jmap -histo:live 24240 > test.log
less test.log
通过上述五步,基本能定位一个问题java进程卡在哪行代码,以及是什么类的实例过多(导致内存泄漏)。
标签:java,top,24240,5EB0,排查,线程,进程 From: https://www.cnblogs.com/ZhangZiXue/p/17126304.html