現象:
df -h發現長時間卡住,無法顯示結果。
根據以往運維經驗,通常df -h這種操作都無法顯示時,首先就要確認是否有NFS掛載的目錄,如果有,確認NFS目錄是否正常。
這是最常見的情況,最近又遇到一次就是NFS的掛載目錄異常,cd這類命令也無法進入到掛載目錄的案例,下面簡單記錄下。
查看系統資源,唯一可疑的是kworker進程占用了100%的cpu,而且無法kill -9殺掉。
一般嘗試關閉正在跑的程序,試着umount 有問題的NFS目錄,基本這種情況下不會成功umount,嘗試去加 -f 參數強制umount,也會報資源忙。
那么這個時候就需要嘗試fuser -ck NFS掛載目錄,通常大概率能殺掉恢復正常,但可能會造成一些影響,要評估是否可以接受/解決,主要要看你殺掉的是什么進程,這里就不做展開。
直觀一些,舉個例子,比如NFS掛載目錄是 /nfsdir ,遇到df卡住的這種情況,
如果關閉使用的程序還是無法解決,多數情況可以通過下面的方式解決:
umount -f /nfsdir
fuser -ck /nfsdir
會有極少數情況下,這樣操作也無法解決,那最后的殺手鐧就是主機層面申請重啟徹底釋放資源了。