Linux 系統沒有業務程序運行,經過 top
觀察,相似以下圖所示,CPU 很空閒,可是 load average 卻很是高,以下圖所示。
服務器
load average
是對 CPU 負載的評估,其值越高,說明其任務隊列越長,處於等待執行的任務越多。出現此種狀況時,多是因爲僵死進程致使的。能夠經過指令 ps -axjf
查看是否存在 D 狀態進程。操作系統
D 狀態是指不可中斷的睡眠狀態。該狀態的進程沒法被 kill,也沒法自行退出。只能經過恢復其依賴的資源或者重啓系統來解決。
code
操做系統都用分頁機制來管理物理內存,操做系統將磁盤的一部分劃出來做爲虛擬內存,因爲內存的速度要比磁盤快得多,因此操做系統要按照某種換頁機制將不須要的頁面換到磁盤中,將須要的頁面調到內存中,因爲內存持續不足,這個換頁動做持續進行,kswapd0是虛擬內存管理中負責換頁的,當服務器內存不足的時候kswapd0會執行換頁操做,這個換頁操做是十分消耗主機CPU資源的。若是經過top發現該進程持續處於非睡眠狀態,且運行時間較長,能夠初步斷定系統在持續的進行換頁操做,能夠將問題轉向內存不足的緣由來排查。cdn
kswapd0 進程佔用了系統大量 CPU 資源。blog
Linux 系統經過分頁機制管理內存的同時,將磁盤的一部分劃出來做爲虛擬內存。而 kswapd0 是 Linux 系統虛擬內存管理中負責換頁的進程。當系統內存不足時,kswapd0 會頻繁的進行換頁操做。而因爲換頁操做很是消耗 CPU 資源,因此會致使該進程持續佔用較高 CPU 資源。隊列
若是經過 top
等監控發現 kswapd0 進程持續處於非睡眠狀態,且運行時間較長並持續佔用較高 CPU 資源,則一般是因爲系統在持續的進行換頁操做所致。則能夠經過 free 、ps 等指令進一步查詢系統及系統內進程的內存佔用狀況,作進一步排查分析。進程