linux下查找java进程占用CPU过高原因

1. 查找进程

top查看进程占用资源情况

明显看出java的两个进程22714,12406占用过高cpu.

 

2.查找线程

使用top -H -p <pid>查看线程占用情况

 

3.查找java的堆栈信息

将线程id转换成十六进制

#printf %x 15664

#3d30

 

然后再使用jstack查询线程的堆栈信息

语法:jstack <pid> | grep -a 线程id(十六进制)

 

jstack <pid> | grep -a 3d30

 

这样就找出了有问题的代码了。

 

剩下的就是分析原因和修改代码了。