背景:
/分區被堆滿了,導致一些服務無法正常運行。在刪掉/下占用空間大的文件后,查看該分區占用率依舊很高。
解決:
1對/下所有文件大小進行統計,排查文件存儲占用磁盤空間
#du -sh /*
2排查inode使用率過高將磁盤空間占滿
#df -i
3排查空間不釋放問題
#lsof |grep deleted|awk '{print $2}'|uniq #把輸出的值kill -9刪除掉,df -h再次查看 #執行時可能會卡頓,耐心等待即可
結果:
排查到由於空間不釋放原因導致磁盤占用100%。殺死僵死文件【已經被刪除,但是有服務程序在使用這些文件,導致這些文件一直被占用,無法釋放磁盤空間】后查看恢復正常。
后續:
服務正常運行2天以后又出現磁盤占用率高的問題。可通過以下命令查看導致僵死文件的具體進程
#lsof |grep deleted|awk '{print $1}'|uniq可以查看占用進程名稱
或者
#lsof |grep deleted|awk '{print $2}'|uniq #輸出進程號
#ps -ef|grep 輸出進程號 #查看具體進程