Java項目模塊占用CPU過高問題分析


背景:近期一個模塊(暫且稱為A)新上了一個需求,改動了些代碼,在測試環境部署之后,該模塊系統CPU使用率動不動就飆升到90%,甚至200%,嚴重影像其他業務執行。

 

排查過程
1.使用top查看當前CPU使用情況,找到CPU使用率高的Java進程PID 104234

 

 

2.根據進程PID,找到對應的服務

 

ps -ef | grep 104234

確認為之前修改過的模塊A

 
3.查看當前進程PID下所有的線程占用CPU情況,得到占用率最高線程PID 16466
top -H -p 104234

 將這個線程PID轉換成16進制,轉換后為4052

 

 

 4.使用jstack命令將進程PID 104234信息導出到文件104234.log

jstack 104234 > 104234.log 

在104234.log中查找4052

 

 可以找到項目中具體的執行線程,接下來就是看該線程的執行邏輯是怎樣的了,在idea中全局搜索該線程名,找到該線程的具體使用場景,進一步排查代碼中可能導致CPU占用率過高的原因。


免責聲明!

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



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