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

2019-04-16 14:19:38 浏览数 (1)

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

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

如图:

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

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

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

 jstack 22821|grep -A 10 0x31d8

针对你的每个线程拿出占用CPU的堆栈信息,你可以根据这个去查找CPU的占用

如果你的内存占用较高,我比较喜欢使用jmap命令

 jmap -histo:live 9652 | head -n 100

jmap -heap 12733

0 人点赞