Java進程CPU使用率高排查


近期java應用,CPU使用率一直很高,經常達到100%,通過以下步驟完美解決,分享一下。

方法一:

轉載:http://www.linuxhot.com/java-cpu-used-high.html

1.jps 獲取Java進程的PID。

2.jstack pid >> java.txt 導出CPU占用高進程的線程棧。

3.top -H -p PID 查看對應進程的哪個線程占用CPU過高。

4.echo “obase=16; PID” | bc 將線程的PID轉換為16進制,大寫轉換為小寫。

5.在第二步導出的Java.txt中查找轉換成為16進制的線程PID。找到對應的線程棧。

6.分析負載高的線程棧都是什么業務操作。優化程序並處理問題。

 

方法二:

1.使用top 定位到占用CPU高的進程PID

top 

通過ps aux | grep PID命令

2.獲取線程信息,並找到占用CPU高的線程

ps -mp pid -o THREAD,tid,time | sort -rn

3.將需要的線程ID轉換為16進制格式

printf "%x\n" tid

4.打印線程的堆棧信息

jstack pid |grep tid -A 30


免責聲明!

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



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