遇到一個已刪除文件占用磁盤的情況昼伴,這里記錄簡單的分析和處理流程
背景:
1、接收到磁盤告警后镣屹,用df -h
查看圃郊,磁盤的使用率是93%。 2女蜈、使用du -h --max-depth=1
查看高負載磁盤時持舆,各文件占用都不是很高。
問題:
df和du的執(zhí)行結(jié)果不一致伪窖,無法定位到大文件路徑并清理文件
問題分析:
初步懷疑有進程占用已經(jīng)被刪除的大文件逸寓,導(dǎo)致文件無法被釋放
具體原因:
Linux下的文件,只有在引用數(shù)為0的情況下才會真正被刪除掉覆山,之前所占用的空間是不會被釋放的竹伸。 如果存在文件引用,系統(tǒng)會將該文件標(biāo)記為已刪除簇宽,在引用此文件的進程都關(guān)閉時(文件引用數(shù)為0時)勋篓,最終刪除文件,釋放空間資源晦毙。
解決方案:
1生巡、【找出被刪除的占用文件】lsof -n | grep grep deleted
2、【釋放被占用空間】使用kill pid
或kill -9 pid
殺掉進程后见妒,再重啟服務(wù)