写在前面:当一个台 WEB 主机(JAVA 平台)上有多个站点时,很可能因为一个站点项目出现死锁之类的 BUG 而导致所有站点挂掉!最烦的就是因为站点过多,在日志无法具体指向的时候,你根本无法确定那个站点出现 BUG,从而你也没法推给开发人员解决。 下面,就介绍一个抓取高占用 CPU 的线程的简单方法:
下面为 jtgrep 代码:
#bin/bash
nid =`python -c "print hex($1)"` grep -i $nid $2
写在后面:此方法无须安装任何软件,能够快速找出占用 CPU 的 JAVA 线程,是发现同类问题的首选办法,但很多时候你可能找到的是 VM threads 线程或者 GC 线程。。。无法真正找到毒瘤,那就只能另寻他法了。