Babyy

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

高手是怎么使用jstack精确找到异常代码的(java程序CPU利用率高的情况)

请jstack神器来帮忙

本文介绍Linux环境下使用jstack定位问题的秘笈
1.【top命令】找到CPU利用率持续比较高的进程,获取[进程号],此处PID为 12891
12891

2.【ps p 12891 -L -o pcpu,pid,tid,time,tname,cmd 命令】找到上述进程中,CPU利用率比较高的[线程号TID](十进制数),此处为 12946
ps p 12891 -L -o pcpu,pid,tid,time,tname,cmd
12946

3.【printf "%x\n"  12946命令】将获取的线程号(十进制数)转换成[十六进制],此处为 0x3292
printf "%x\n"  12946
3292

4.【jstack -l 12946 】查看进程PID为3036中,nid为 0x3292 的线程信息
jstack -l  12891 > /home/temp1 & vi /home/temp1 搜索到 0x3292 ,看到代码位置

posted on 2016-12-22 17:16  Babyy  阅读(298)  评论(0编辑  收藏  举报