一、可能有執行緒一直占用cpu資源
1. 先通過 ps 檢視程序狀態,找出程序的pid(8209)。
2.jstack -l 8209 > /usr/local/work/tomcat/8209.stack 匯出pid對應的執行緒資訊到檔案
4. 通過top -h -p 8209 命令檢視對應程序是哪個執行緒占用cpu過高(eg:8308)
5.printf "%x\n" 8308 轉換十進位制為十六進製制 此處為:2074。
6.在匯出的堆疊檔案中搜尋執行緒id等於nid=0x2074的執行緒,此處即列出了該執行緒對應的類
7.根據執行緒資訊找到對應的類定位問題成功,可能的原因:
1.程式計算比較密集(大型矩陣的運算)
2.程式出現了死迴圈(while迴圈,hashmap死迴圈)
3. 程式邏輯結構的問題(資料庫連線沒有釋放,連線池死鎖,自旋鎖一直占用著記憶體)
二、檢視磁碟使用率是不是超出正常範圍。(df)
三、檢視記憶體使用率是否超出正常範圍(free)
四、jvm記憶體狀態可能出現異常,可能頻繁的gc原因。可以適當的改變堆疊比例。
cpu負載(load):是指在一段時間內占用cpu時間的程序和等待cpu時間的程序數(處於被喚醒狀態,不是wait狀態),取決於cpu佇列。
如果現在出現cpu利用率很低,load很高的情況,可能是io密集型的任務比較多。
Linux下CPU佔用率高分析方法
一 可能有執行緒一直占用cpu資源 1.先通過 ps 檢視程序狀態,找出程序的pid 8209 2.jstack l 8209 usr local work tomcat 8209.stack 匯出pid對應的執行緒資訊到檔案 4.通過top h p 8209 命令檢視對應程序是哪個執行緒占用cpu...
檢視CPU佔用率
檢視系統cpu佔用率 在跑一些程式,例如deep learning的時候,總是希望檢視一下cpu gpu 記憶體的使用率 1.cpu 記憶體 使用top命令 top 有乙個更直觀的監測工具,叫htopsu doap t ge tins tall htop s ud oapt get inst all...
(學習筆記)linux下CPU佔用率計算
proc檔案系統是乙個偽檔案系統,它只存在記憶體當中,而不占用外存空間。它以檔案系統的方式為訪問系統核心資料的操作提供介面。使用者和應用程式可以通過proc得到系統的資訊,並可以改變核心的某些引數。這裡將介紹如何從 proc檔案系統中獲取與防火牆相關的一些效能引數,以及如何通過 proc檔案系統修改...