1.查看cpu占有率
top -P
2.查看進程cpu占用率
ps -mp 3749 -o THREAD,tid,time|sort -rn|head -n 20
查看占用cpu高,且占用時間長的線程
$.線程ID轉換為16進制格式
printf "%x\n" tid
3.查看java堆棧信息
su - nobody -c "/usr/java/jdk1.6.0_21/bin/jstack 3749|grep 34d8 -A 30" 34d8替換成上面轉換的16進制
注意:這里要使用程序啟動的用戶執行此命令
使用root會提示:
Unable to open socket file: target process not responding or HotSpot VM not loaded
The -F option can be used when the target process is not responding
4.分析結果
請開發協助分析結果...
參考鏈接
http://www.jianshu.com/p/5f14386a1fe3
http://dbaplus.cn/news-21-130-1.html
http://www.blogjava.net/hankchen/archive/2012/05/09/377735.html