码迷,mamicode.com
首页 > 编程语言 > 详细

如何定位cpu占用率高的java线程

时间:2017-09-08 11:48:32      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:java

如何定位cpu占用率高的java线程

工具:

1

jstack:jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使用方式只支持以下的这种方式。

pidstatpidstat主要用于监控全部或指定进程占用系统资源的情况,如CPU,内存、设备IO、任务切换、线程等。pidstat首次运行时显示自系统启动开始的各项统计信息,之后运行pidstat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。

top:或者jps找到java进程PID,或者 或者  ps -Lfp pid

通过%CPU和 TIME,判断占用的线程TID

 找到TID,转换成16进制,然后在上面(jstack 进程id > ps.txt)导出的文件中搜索,就可以定位到具体的线程,类。 


2、或者:

jstack -l pid > /home/1.tdump

再通过看线程 :pidstat -p  pid(java进程ID) -u -d -t -w -h 1 1000 

 找到TID,转换成16进制,然后在上面(jstack 进程id > 1.tdump)导出的文件中搜索,就可以定位到具体的线程,类。

3、可以下载1.tdump到本地查找

如何定位cpu占用率高的java线程

标签:java

原文地址:http://357712148.blog.51cto.com/6440370/1963585

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!