程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> tomcat+java的web程序持續占cpu問題調試

tomcat+java的web程序持續占cpu問題調試

編輯:關於PHP編程

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之類的循環代碼片段。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved