Windows下Tomcat內存占用過高問題跟蹤(ProcessExplorer+jstack)


一、問題描述

  Tomcat下面部署很多個java項目的war包,tomcat啟動一段時間后,發現cpu占用過高,整個界面卡死!

二、通過process explorer查看java進程下的線程

process explorer是Windows系統和應用程序監視工具。

process explorer下載:https://technet.microsoft.com/en-us/sysinternals/bb896653/ 

下載后直接打開即可:

 

使用PID為3764的進程,點開javaw.exe進程:

 

這時候會發現TID為4060(10進制)的線程占用CPU最高,下面找到該進程在項目中的位置。

三、通過jstack把進程下所以的Java線程棧的內容打印出文本中

jstack是java虛擬機自帶的一種堆棧跟蹤工具,用於生成虛擬機當前時刻的線程快照,包含虛擬機中每一個線程正在執行的方法堆棧的集合,用於定位線程出現長時間停頓的原因,如死鎖、死循環、外部資源長時間等待等

在cmd命令里輸入:jstack -l 3764 回車:

 

將4060(TID)十進制轉成16進制(在線工具:http://tool.oschina.net/hexconvert/)為fdc;

找到nid=0xfdc,找到后面對應的java類對應的行數,即可定位到問題。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM