回覆列表
  • 1 # A鵬皓科技

    一個應用佔用CPU很高,除了確實是計算密集型應用之外,通常原因都是出現了死迴圈。CPU負載過高解決問題過程:

    使用【top】命令定位異常程序,可發現12836的CPU和記憶體佔用率都非常高

    備註: top 命令預設情況下,是每 3 秒重新整理一次。也可以透過 top -d <重新整理時間間隔> 來指定重新整理頻率,如top -d 0.1 或top -d 0.01 等。top 執行時,也可以按“s ”鍵,修改時間間隔。

    使用【top -H -p 程序號】檢視異常執行緒使用【printf "%x\n" 執行緒號】將異常執行緒號轉化為16進位制使用【jstack 程序號|grep 16進位制異常執行緒號 -A90】來定位異常程式碼的位置(最後的-A90是日誌行數,也可以輸出為文字檔案或使用其他數字)。可以看到異常程式碼的位置。

    找到相應程式碼檢查,發現確實有死迴圈存在。

    排查CPU故障的常用命令:

    top命令:Linux命令。可以檢視實時的CPU使用情況。也可以檢視最近一段時間的CPU使用情況。PS命令:Linux命令。強大的程序狀態監控命令。可以檢視程序以及程序中執行緒的當前CPU使用情況。屬於當前狀態的取樣資料。jstack:Java提供的命令。可以檢視某個程序的當前執行緒棧執行情況。根據這個命令的輸出可以定位某個程序的所有執行緒的當前執行狀態、執行程式碼,以及是否死鎖等等。pstack:Linux命令。可以檢視某個程序的當前執行緒棧執行情況。

  • 中秋節和大豐收的關聯?
  • 2月底,會不會解封?會不會再出現第2個14天?發表你的看法?