找出Java最耗CPU或IO的线程
Contents
查看某进程及某线程占用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 , 推荐了个自动化脚本, 亲测更好用点. 这样子就可以免去上面的一步一步地查找和计算了. 所以, 这里也直接引用这个工具, 有需要的可以用下.