JVM CPU高負載的排查辦法

2021-08-25 13:59:12 字數 569 閱讀 8948

1.執行top -c命令,找到cpu最高的程序的id

2.執行top -h -p pid ,這個命令就能顯示剛剛找到的程序的所有執行緒的資源消耗情況。找到cpu負載高的執行緒tid 8627, 把這個數字轉換成16進製制,21b3(10進製轉16進製制,用linux命令: printf %x 172)。

3.執行jstack -l pid,拿到程序的執行緒dump檔案。這個命令會打出這個程序的所有執行緒的執行堆疊。

4.用記事本開啟這個檔案,搜尋「21b3」,就是搜一下16進製制顯示的執行緒id。搜到後,下面的堆疊就是這個執行緒打出來的。排查問題從這裡深入。

5.打出記憶體的dump檔案

執行命令,jmap -dump:format=b,file=/export/logs/anycall.jd.local/heapdump.bin;拿到這個dump檔案後,通過memoryanalyzer.exe工具將其開啟。

說明一點,這個工具預設開啟的檔案大小為512m,如果dump檔案過大,需要修改這個值,找到安裝目錄下的這個檔案memoryanalyzer.ini,修改。

在top命令執行過程中可以通過top的內部命令做顯示方式的控制。

PHP FPM高負載的解決辦法

導致nginx 502 bad gateway 的php cgi fastcgi nginx頻爆502 bad gateway的錯誤,看了網上的教程,仍沒有徹底解決。目前我總結的解決502 bad gateway的方式有 1.視伺服器的效能,在php fmp.conf裡增加max children的...

PHP FPM高負載的解決辦法

這裡只是介紹了php fpm的優化方法的,但一般情況下和nginx組合使用的時候,單獨優化其中一項的話,作用不是特別的大,同時還需要對nginx進行優化 nginx的做法方法參考 上面的優化前和優化後的圖,看得出前後差距還是特別的大的 導致nginx 502 bad gateway 的php cgi...

負載高cpu使用低排查,記憶體撐滿

負載高cpu使用低排查,記憶體撐滿 排查 使用top命令發現cpu使用較低,但是負載高 異常 kswapd0 程序占用較高 cpu 作業系統都用分頁機制來管理物理記憶體,作業系統將磁碟的一部分劃出來作為虛擬記憶體,由於記憶體的速度要比磁碟快得多,所以作業系統要按照某種換頁機制將不需要的頁面換到磁碟中...