java-web测试题cpu_tomcat+java的web程序持续占cpu高问题调试【转】
轉自
tomcat+java的web程序持續(xù)占cpu問題調試 - 像風一樣的自由 - CSDN博客
http://blog.csdn.net/five3/article/details/28416771
生產環(huán)境下JAVA進程高CPU占用故障排查-huifeideluotuo-ChinaUnix博客
http://blog.chinaunix.net/uid-10449864-id-3463151.html
現象:
在tomcat中部署Java的web應用程序,過一段時間后出現tomcat的java進程持續(xù)占用cpu高達100%,導致web程序訪問受阻。
可能原因分析:
可能程序確實在進行數據計算;或程序進入死循環(huán);
解決方法:
1、先用top查看占用cpu的進程id
2、再用ps -ef |?grep PID定位具體的進程主體;如是否是tomcat啟動的java程序
3、用ps -mp pid -o THREAD,tid,time打印出該進程下的線程占用cpu情況
找到了耗時最高的線程28802,占用CPU時間快兩個小時了!
或者使用
[root@localhost logs]# ps -mp 2633 -o THREAD,tid,time | sort -rn
顯示結果如下:
USER???? %CPU PRI SCNT WCHAN? USER SYSTEM?? TID???? TIME
root???? 10.5? 19??? - -???????? -????? -? 3626 00:12:48
root???? 10.1? 19??? - -???????? -????? -? 3593 00:12:16
4、其次將需要的線程ID轉換為16進制格式:
printf "%x\n" tid
5、最后打印線程的堆棧信息:
jstack pid |grep tid -A 30
找到出現問題的代碼,并分析具體函數中是否有可能出現死循環(huán)的代碼段。
通常問題出現在while, for之類的循環(huán)代碼片段。
總結
以上是生活随笔為你收集整理的java-web测试题cpu_tomcat+java的web程序持续占cpu高问题调试【转】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 更容易感动是哪首歌啊?
- 下一篇: inside java security