tomcat+java的web程式持續佔cpu問題調試

來源:互聯網
上載者:User

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情況



找到了耗時最高的線程28802,佔用CPU時間快兩個小時了!

4、其次將需要的線程ID轉換為16進位格式:

printf "%x\n" tid




5、最後列印線程的堆棧資訊:

jstack pid |grep tid -A 30





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

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.