频道栏目
首页 > 资讯 > 虚拟机 > 正文

运维-JVM监控之线程问题

17-05-11        来源:[db:作者]  
收藏   我要投稿

jstack主要用来查看某个Java进程内的线程堆栈信息

1、ps -ef |grep 应用名称 --获取pid

2、top -Hp pid --找出该进程内最耗费CPU的线程

例:top -Hp 31385

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
31499 admin 20 0 3795904 591760 14224 S 0.3 3.7 1:12.22 java
31385 admin 20 0 3795904 591760 14224 S 0.0 3.7 0:00.00 java
31388 admin 20 0 3795904 591760 14224 S 0.0 3.7 0:19.00 java
31389 admin 20 0 3795904 591760 14224 S 0.0 3.7 0:01.29 java
31390 admin 20 0 3795904 591760 14224 S 0.0 3.7 0:01.31 java
31391 admin 20 0 3795904 591760 14224 S 0.0 3.7 0:02.11 java
31392 admin 20 0 3795904 591760 14224 S 0.0 3.7 0:00.02 java
31393 admin 20 0 3795904 591760 14224 S 0.0 3.7 0:00.04 java
31394 admin 20 0 3795904 591760 14224 S 0.0 3.7 0:00.00 java
31395 admin 20 0 3795904 591760 14224 S 0.0 3.7 1:09.64 java

TIME列就是各个Java线程耗费的CPU时间。

3、printf "%x\n" 线程id --将线程id转化为十六进制

例:printf "%x\n" 31499
7b0b

4、jstack pid | grep 十六进制线程id --查询堆栈信息

例:jstack 31385|grep 7b0b
"MQ-AsyncArrayDispatcher-Thread-31385#-1244857759#-1596142409#9048915282620395" #72 daemon prio=5 os_prio=0 tid=0x00007f6c058ea800 nid=0x7b0b in Object.wait() [0x00007f6be22a1000]

定位:线程名为MQ-AsyncArrayDispatcher-.....,wait()方法。

相关TAG标签
上一篇:Error:FAILURE: Build failed with an exception. * What went wrong: Task 'generate_360DebugSources' n
下一篇:运维-JVM监控之内存泄漏
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站