2019年6月6日 星期四

CentOS沒有程式在跑卻顯示高負載

有台CentOS 6的舊機器,使用top沒有看到甚麼高負載的程式但使用uptime卻會看到很高的負載量。通常這種狀況都會是nfs在搞鬼,大概會是下面這種狀況:
  1. 本地端使用mount nfs掛載了遠端機器的資料夾
  2. 遠端機器的nfs service掛了或是關掉了
  3. 本地端使用df, ls等去看掛載的資料夾,然後就一直在等待nfs回應
    雖然這些程式不怎麼吃資源,但卻會出現在負載上面

解決方案就是把nfs給掛好,或是刪除這些卡住的指令:
  • ps -e v | awk '$3=="STAT" || $3=="D" || $3=="R" {print}'
    顯示在等待磁碟回應或是正在跑的程式,注意參數-e和v中間有空格
  • umount -lf /nfs
    卸載卡住的的nfs掛載區,這邊以/nfs為例子
  • sudo killall df && sudo killall ls
    刪除卡住的程式,這邊是以df和ls為例子

參考資料

_EOF_

沒有留言:

張貼留言