linux下tomcat佔用cpu太高問題排查

在服務器報cpu太高時,可以使用如下命令,快速導出堆棧信息,以方便查看具體的問題。
java

一、使用top命令定位異常進程。能夠看見3653的CPU和內存佔用率都很是高bash

圖片.png

此時能夠再執行ps -ef | grep java,查看全部的java進程,在結果中找到進程號爲12836的進程,便可查看是哪一個應用佔用的該進程。服務器

二、使用top -H -p 進程號查看異常線程ide

圖片.png

三、使用printf "%x\n" 線程號將異常線程號轉化爲16進制線程

# printf "%x\n" 線程號

圖片.png

圖片.png

四、 使用jstack 進程號|grep 16進制異常線程號 -A30來定位異常代碼的位置(最後的-A30是日誌行數,也能夠輸出爲文本文件或使用其餘數字)。能夠看到異常代碼的位置。3d

圖片.png

圖片.png

 可將錯誤信息給研發同事看看緣由
日誌

相關文章
相關標籤/搜索