開啟doc命令列,執行命令:jstack -l 9520 >> d:\\jstack.txt
開啟d盤下的jstack.txt檔案,搜尋16進製制的執行緒編號4c90,找到後就可定位到有問題的**。
1,使用top 命令動態的展示占用前幾的程序pid, cpu消耗, time, res 等資訊,然後找到cpu占用最高的pid。
2 , top -hp 19600(pid) 顯示pid程序消耗的執行緒各個情況。著到乙個認為time最長的執行緒的pid,將pid轉成16進製制4c90,例如:
printf "%x\n" 19600(pid)。
3、使用jstack工具定位問題的原因 ./jstatck -l 9520 | grep 4c90 -a 80 。
說明:-a 80 是關鍵字後的80行**
一次GC執行緒占用系統CPU過高處理過程
因為測試人員報告說,最近訂單系統總是超時,要重啟才能恢復正常,但是第二次復現的時間不固定。然後先是檢視下應用狀態是否正常,沒有問題。然後檢視日誌,發現有很多交易報超時。仔細檢視超時的日誌,發現什麼型別的交易都有,而且超時的地方也不固定,更像是系統或者架構層面的錯誤。趕緊看下 ps ux linux系...
java在linux下占用高cpu的一次錯誤排查
在前兩天突然間接到反饋說伺服器很卡解決後來做乙個記錄.以下為檢查stack與heap的部分截圖 雖然說老年代已經77 但是看起來還是正常的,並沒有到要爆掉的情況 但是觀察了幾分鐘後cpu一直持續占用不下 網上查了一些api後偶然間看到 top h p 可以檢視某程序下的所有執行緒 執行後可以看到,其...
一次cpu占用高的定位分析
客戶機器cpu占用較高甚至出現cpu打滿的情況,造流程啟動執行緩慢,狀態更新卡死,嚴重影響使用者體驗。首先觀察使用者機器資源情況,記憶體剩餘40g,jvm記憶體占用10 不到。jps ml 拿到pid之後 jstat gccause pid 發現頻繁fgc,差不多一分種就有一次顯示的system.g...