如何定位java导致CPU过高的问题

【命令概略】

1、查看占用cpu过高的进程号

top

 

2、根据进程号查看相关程序

ps -ef|grep $进程号|grep -v grep

ps -ef|grep 18189|grep -v grep

 

3、定位具体程序线程号

ps -mp $进程号 -o THREAD,tid,time

ps -mp 18189 -o THREAD,tid,time

 

4、将线程编号转为16进制

18190->470E->470e

 

5、定位具体程序代码

jstack $进程号|grep $线程号(16进制) -A60

jstack 18189|grep 470e -A60

 

【详细说明】

1、查看占用cpu过高的进程号

top

如何定位java导致CPU过高的问题

2、根据进程号查看相关程序

ps -ef|grep $进程号|grep -v grep

ps -ef|grep 18189|grep -v grep

如何定位java导致CPU过高的问题

3、定位具体程序线程号

ps -mp $进程号 -o THREAD,tid,time

ps -mp 18189 -o THREAD,tid,time

如何定位java导致CPU过高的问题

相关参数说明:

4、将线程编号转为16进制

18190->470E->470e

如何定位java导致CPU过高的问题

5、定位具体程序代码

jstack $进程号|grep $线程号(16进制) -A60

jstack 18189|grep 470e -A60

如何定位java导致CPU过高的问题