1. 程式人生 > >tomcat+java的web程式持續佔cpu問題除錯

tomcat+java的web程式持續佔cpu問題除錯

現象:

在tomcat中部署java的web應用程式,過一段時間後出現tomcat的java程序持續佔用cpu高達100%,導致web程式訪問受阻。

可能原因分析:

可能程式確實在進行資料計算;或程式進入死迴圈;

解決方法:

1、先用top檢視佔用cpu的程序id

2、再用ps -ef | grep PID定位具體的程序主體;如是否是tomcat啟動的java程式

3、用ps -mp pid -o THREAD,tid,time打印出該程序下的執行緒佔用cpu情況

1

找到了耗時最高的執行緒28802,佔用CPU時間快兩個小時了!

4、其次將需要的執行緒ID轉換為16進位制格式:

printf "%x\n" tid

2

5、最後列印執行緒的堆疊資訊:

jstack pid |grep tid -A 30

3

找到出現問題的程式碼,並分析具體函式中是否有可能出現死迴圈的程式碼段。

通常問題出現在while, for之類的迴圈程式碼片段。