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

2021-10-17 04:36:44 字數 990 閱讀 2719

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

排查:使用top命令發現cpu使用較低,但是負載高

異常:kswapd0 程序占用較高 cpu

作業系統都用分頁機制來管理物理記憶體,作業系統將磁碟的一部分劃出來作為虛擬記憶體,由於記憶體的速度要比磁碟快得多,所以作業系統要按照某種換頁機制將不需要的頁面換到磁碟中,將需要的頁面調到記憶體中,由於記憶體持續不足,這個換頁動作持續進行,kswapd0是虛擬記憶體管理中負責換頁的,當伺服器記憶體不足的時候kswapd0會執行換頁操作,這個換頁操作是十分消耗主機cpu資源的。如果通過top發現該程序持續處於非睡眠狀態,且執行時間較長,可以初步判定系統在持續的進行換頁操作,可以將問題轉向記憶體不足的原因來排查。

處理辦法:

使用ps -aux |sort -rnk 4 |head -n 10查詢記憶體使用靠前的服務,處理異常的服務。恢復正常

什麼是負載:

負載就是cpu在一段時間內正在處理以及等待cpu處理的程序數之和的統計資訊,也就是cpu使用佇列的長度統計資訊,這個數字越小越好(如果超過cpu核心*0.7就是不正常)

負載分為兩大部分:cpu負載、io負載

例如,假設有乙個進行大規模科學計算的程式,雖然該程式不會頻繁地從磁碟輸入輸出,但是處理完成需要相當長的時間。因為該程式主要被用來做計算、邏輯判斷等處理,所以程式的處理速度主要依賴於cpu的計算速度。此類cpu負載的程式稱為「計算密集型程式」。

還有一類程式,主要從磁碟儲存的大量資料中搜尋找出任意檔案。這個搜尋程式的處理速度並不依賴於cpu,而是依賴於磁碟的讀取速度,也就是輸入輸出(input/output,i/o).磁碟越快,檢索花費的時間就越短。此類i/o負載的程式,稱為「i/o密集型程式」。

cpu使用率低負載高

cpu低而負載高也就是說等待磁碟i o完成的程序過多,就會導致佇列長度過大,這樣就體現到負載過大了,但實際是此時cpu被分配去執行別的任務或空閒,具體場景有如下幾種。場景一 磁碟讀寫請求過多就會導致大量i o等待 上面說過,cpu的工作效率要高於磁碟,而程序在cpu上面執行需要訪問磁碟檔案,這個時候...

記一次Dubbo超時 CPU高負載問題排查

1.問題背景 最近經常有同事反饋我們灰度環境老的交易系統,這裡簡稱trade,dubbo消費者呼叫其他服務超時,因為該專案維護人員眾多,加上灰度環境發布較多,一直沒有排查,然後五一前再次有同事反饋這個問題,剛好有空就準備分析一下引起超時的原因。2.問題排查 2 1 問題描述 大量dubbo服務呼叫超...

Linux 伺服器被挖礦 CPU或記憶體高負載處理

1.通過linux命令檢視cpu記憶體情況 輸入 top 然後按1 對資源占用進行排序2.檢視資源佔比較高的程序是否本系統的程序 如果是本系統程序,根據業務系統確定為什麼會這樣,可能是訪問量過大 死迴圈 定時任務高頻執行 excle大量資料匯入 等情況 如果非本系統程序,則繼續往下看3.首先進行ki...