查看java进程中哪个线程在消耗系统资源
1 top -p $pid -H 加上-H这个参数后,会列出有哪些线程。这样就可以看到哪个线程id最消耗系统资源了。
看到的线程id是10进制的数字。
2 jstack $pid 可以打印出制定java进程的stack状况。
3 将第1步top命令看到的线程id转为16进制显示,就可以在jstack的结果中找到它了。
可以写一个简单的脚本来做这个事情。
#!/bin/sh file=$1 nid=`python -c "print hex($2)" ` grep -i $nid $file
ok