jstack 找到最耗时间性能的线程 线程 线程

http://my.oschina.net/feichexia/blog/196575

第一步先找出Java进程ID,我部署在服务器上的Java应用名称为mrf-center:

ps -ef | grep mrf-center

root 21711 1 1 14:47 pts``/3 00:02:10 java -jar mrf-center.jar

得到进程ID为21711

第二步找出该进程内最耗费CPU的线程,

可以使用ps -Lfp pid 或者 ps -mp pid -o THREAD, tid, time 或者 top -Hp pid, 我这里用第三个,输出如下:

20160307105042587.jpg

TIME列就是各个Java线程耗费的CPU时间,CPU时间最长的是线程ID为21742的线程,

printf "%x\n" 21742

得到21742的十六进制值为54ee,下面会用到

OK,下一步终于轮到jstack上场了,它用来输出进程21711的堆栈信息,然后根据线程ID的十六进制值grep,如下:

jstack 21711 | grep 54ee

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容