查看某进程及某线程占用CPU的例子

  • jps: 列出java进程,找到pid.
  • pidstat -p pid -u 1 3 -u -t: 查看pid的进程所有线程的cpu使用情况.
  • jstack -l pid > /tmp/thread.txt: 导出指定Java应用的所有线程.

然后查看 nid=xxx(即第二步里线程号的线程),即可定位到某段代码.

查看某进程及某线程占用IO的例子

  • jps: 列出java进程,找到pid.
  • pidstat -p pid -u 1 3 -d -t: 查看pid的进程所有线程的IO使用情况.
  • jstack -l pid > /tmp/thread.txt: 导出指定Java应用的所有线程.

然后查看 nid=xxx(即第二步里线程号的线程),即可定位到某段代码.

进制转换

十进制转换十六进制

printf "%x\n" 十进制数字

十六进制转换十进制

echo $((0x十六进制数字))

例子

➜  ~  printf "%x\n" 20202
4eea
➜  ~  echo $((0x4eea))
20202
➜  ~

更新说明

看了下有位大神提个 issue , 推荐了个自动化脚本, 亲测更好用点. 这样子就可以免去上面的一步一步地查找和计算了. 所以, 这里也直接引用这个工具, 有需要的可以用下.

show-busy-java-threads