在Linux系統的ECS實例中,執行du與df命令查看磁盤容量,出現不一致的現象 執行df -h命令查看文件系統的使用率,可以看到500G 執行du / -sh 命令只使用250G 執行du和df命令顯示的結果不一致,df比du命令顯示的數據大很多。 問題原因 以下為五種問題的原因: 用戶刪除了大量的文件后,du命令就不會在文件系統目錄中統計這些文件。如果此時還在運行中的進程持有這個已經被刪除的文件句柄,那么這個文件就不會真正在磁盤中被刪除,分區超級塊中的信息也就不會更改,
df命令仍會統計這個被刪除的文件。 通過lsof命令查詢處於deleted狀態的文件,被刪除的文件在系統中被標記為deleted。如果系統有大量deleted狀態的文件,會導致du和df命令統計結果不一致。
可在opt目錄下執行如下命令查看。 lsof |grep deleted Linux系統磁盤分區有保留區的概念,會給root或指定用戶預留5%或更大的空間,當使用到這塊保留區的空間時,fdisk命令的計算將會是負數。ext文件系統(包括ext2、ext3、ext4)都會默認預留5%的磁盤空間,
使用root用戶維護系統或記錄系統關鍵日志使用。 當用du -sh *命令來統計目錄總容量時,如果該路徑下包含隱藏文件,是不會包含在統計結果里的。 由於刪除了大量小文件,導致inode釋放出現問題。 由於數據盤掛載前該路徑下就存在文件,掛載后用du無法查詢到原路徑文件。
轉:https://www.tuicool.com/wx/NV7rU3y