排查Java高CPU占用原因

2021-09-20 17:52:43 字數 650 閱讀 1615

top命令發現某個程序占用了100%的cpu

通過ps命令,進一步確定哪個程序出了問題

再檢視執行緒占用cpu的列表

找到占用cpu最高的執行緒,檢視tid,將其轉換為16進製制格式

# printf 

"%x\n" tid

而後檢視堆疊資訊

# jstack pid |grep 16進製制tid -a 60
這裡報錯是因為tomcat程序執行使用者為tomcat,而當前以root使用者檢視堆疊資訊

因此切換為tomcat執行命令

# sudo -u tomcat  jstack 32072 |grep 1541 -a 60

# sudo -u tomcat jstack -j-d64 -m 32072

Java while迴圈cpu占用高排查和優化

放幾個阿里雲的優惠鏈結 代金券 高效能伺服器2折起 高效能伺服器5折 命令列工具的功能都很強大,像jmap jstat jstack jps這些,功能和一些收費軟體差不多,但是沒有gui看起來就有些費勁。由於使用windows分析就使用自帶的jmc來用了,只要在命令列輸入jmc就可以啟動。由於已經知...

高CPU排查方法分享

1 軟體效能較差,占用cpu較多,往往是由於某段 邏輯演算法不佳導致,那如何在數以千計的函式中找到問題函式呢?2 在使用 runaway命令比較不同時間各執行緒占用cpu時間,找到cpu時間增漲較多的執行緒,那麼就初步定位了問題函式所在的問題執行緒,3 然後在不同的時刻觀察問題執行緒的呼叫棧,如果多...

CPU飆高問題排查

1 查詢哪個程序占用cpu 2 程序哪個執行緒占用cpu 3 查詢執行緒的堆疊資訊 cpu飆高時,基本就是三板斧就可以找到具體占用cpu的執行緒資訊,這樣,你就看到cpu這麼高,是什麼執行緒在搗亂了!可以使用top 或者top grep 使用者名稱 比如這裡我們可以使用 top grep deplo...