1. 程式人生 > >Java應用CPU佔用100%原因分析(轉載)

Java應用CPU佔用100%原因分析(轉載)

在linux環境下部署的應用,有時候出於各種原因,出現cpu佔用100%的情況。這時候,就需要快速分析定位cpu佔用的原因。

通常,通過linux系統的top命令,可以看出具體哪個程序佔用了過多的cpu資源。但如果發現是java程序,那麼就需要進一步分析是java程序中的具體哪個執行緒出現了問題。

1、確定Java應用程序編號 使用 jps 或 ps -ef|grep java 命令確定想要分析的應用的程序編號

jps

(備註:如果在不知道哪個應用佔用cpu高的話,可以先通過top命令找到佔用cpu最高的程序ID,再通過id查詢執行緒id,或者直接通過top -H找到佔用cpu最高執行緒)

2、檢視Java應用中執行緒CPU佔比 使用top -p 101973 -H 命令檢視指定程序下的執行緒cpu佔用比例,分析是具體哪個執行緒佔用率過高,其中 101973 就是通過第一步確定下來的程序編號

top

3、檢視執行緒資訊 從中選擇佔比較高的執行緒的編號(PID),並將該PID轉換為16進位制(printf "%x\n" 執行緒id)0x5bd8。通過jstack 101973 |grep -A 10 0x5bd8

å·ä½çº¿ç¨ä¿¡æ¯

通過該命令可以分析出執行緒的具體資訊,再通過相應的解決方法來解決cpu佔用過高的問題。 ---------------------  作者:偽開發人員  來源:CSDN  原文:https://blog.csdn.net/green1893/article/details/72357032