在windows下web程序佔用CPU的性能調試

之前在公司內部分享平臺發一篇在生產環境排查的CPU性能問題的文章,比較通用,轉到CSDN上與大家分享

問題

         業務系統的Tomcat服務器跑了一段時間後,發現業務系統進程佔用的CPU資源在70%-80%,加上自助,移動端和報表,整個服務器的CPU處理將近100%運行狀態。用戶使用時非常慢。

問題查找

通過process explorer查看Tomcat進程下的線程

下載地址: https://technet.microsoft.com/en-us/sysinternals/bb896653/

漢化後的版本:http://download.csdn.net/detail/p_3er/9169985

下載後直接打開運行就可以了。

圖一 process explorer主界面

 

點開tomcat進程:

圖二:進程查看

現在服務器處於正常狀態,無CPU佔用過高的線程,我們以4920 TID線程爲例,下面我們要通過jstack把進程下所以的Java線程棧的內容打印出文本中。

可以通過圖一發現該tomcat進程pid爲5936

圖三 查看pid

 

打開命令行,輸入jstack -l 5936  > D:/java.stack

 

圖四 jstack –l

打開java.stack

通過process explorer獲取到的線程TID對應的是stack文本線程棧描述內容中的tid的十進制值。

 

我們把TID爲4920轉成十六進制爲1338,然後在stack文本搜索1338,,找到此線程棧的描述內容爲:

 

圖五 查找線程描述

這裏都是正常的,如果是不正常的,可以根據描述查看相關代碼,進行優化。類似圖六,可以查看異常代碼所在行數。

 

圖六 查看異常代碼所在行數

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章