top查看占用cpu较高的进程

1、查看jstack信息
jstack pid
jstack 166176

2、查出进程id后,通过如下命令查看该进程中每个线程的资源使用情况
top -Hp 166176

3、得到进程的十六进制值
TIME列就是各个Java线程耗费的CPU时间,CPU时间最长的是线程ID为21742的线程,用
printf "%x\n" 169527
得到169527的十六进制值为29637
4、查看堆栈信息
下一步终于轮到jstack上场了,它用来输出进程169527的堆栈信息,然后根据线程ID的十六进制值grep,如下:
jstack 169527|grep 29637

详细信息

网友评论