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

更多请微信扫码关注

linux下java程序占用CPU和内存过高排错处理方案_第1张图片

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

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

如图:

linux下java程序占用CPU和内存过高排错处理方案_第2张图片

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

linux下java程序占用CPU和内存过高排错处理方案_第3张图片

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

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

 jstack 22821|grep -A 10 0x31d8
linux下java程序占用CPU和内存过高排错处理方案_第4张图片
针对你的每个线程拿出占用CPU的堆栈信息,你可以根据这个去查找CPU的占用
 
如果你的内存占用较高,我比较喜欢使用jmap命令
 jmap -histo:live 9652 | head -n 100
linux下java程序占用CPU和内存过高排错处理方案_第5张图片

 

jmap -heap 12733

linux下java程序占用CPU和内存过高排错处理方案_第6张图片

你可能感兴趣的:(java)