linu下java程序占用CPU和内存过高排错处置方案

linu下java程序占用CPU和内存过高排错处理方案

1:通过jps命令查看所有进程pid。

2:使用top -p pid 针对你所要查的pid查看这个进程的CPU和内存以及负载情况

如图:

linu下java程序占用CPU和内存过高排错处置方案

使用top -p pid  -H  查看针对每一个线程占用CPU情况进行查询

linu下java程序占用CPU和内存过高排错处置方案

如果你发现某一个PID占用的CPU过高,就拿到这个PID转换成16进制

例如pid为12760转化成16进制31D8,大写换成小写

 jstack 22821|grep -A 10 0x31d8
linu下java程序占用CPU和内存过高排错处置方案
针对你的每个线程拿出占用CPU的堆栈信息,你可以根据这个去查找CPU的占用

如果你的内存占用较高,我比较喜欢使用jmap命令
 jmap -histo:live 9652 | head -n 100
linu下java程序占用CPU和内存过高排错处置方案

jmap -heap 12733

linu下java程序占用CPU和内存过高排错处置方案