Windows服務器下 Tomcat占用CPU過高排查


 

問題描述

Tomcat下只部署了一個項目,但是CPU持續保持99%,看任務管理器發現Tomcat程序占大部分,mysql占小部分,推測是定時任務頻繁訪問數據庫導致,先從java程序看起。

查看java進程下的線程

使用工具

process explorer:Windows系統和應用程序監視工具。(自行百度下載)

操作步驟

  1. 雙擊打開監控工具
    在這里插入圖片描述
    這里可以看到tomcat的PID為1212

  2. 雙擊點開Tomcat進程,進入線程頁面
    在這里插入圖片描述
    可以看到占用最高的線程ID是:4432

  3. 使用jstack將tomcat進程中的堆棧信息輸出到文件
    使用命令:jstack -l [PID] >> [file]
    如:

jstack -l 1212 >> D:/1212.txt 
  • 1

執行完成后,在指定目錄找到導出的文件
在這里插入圖片描述

    1. 查看文件,並找到高占用線程ID的堆棧
      如:剛剛顯示占用高的是4432,先轉換成16進制,就是1150,然后在導出的文件中查找1150
      在這里插入圖片描述
    2. 根據堆棧信息排查代碼中是否有導致cpu占用過高的操作,然后進行優化。


免責聲明!

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



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