Disk-Usage

xfs 磁碟使用量比文件大 15-30%

  • July 25, 2017

xfs 使用的磁碟空間似乎比文件所需的多 15-30%:

# du
0       .
# dd if=/dev/zero of=test bs=1M count=5k
5120+0 records in
5120+0 records out
5368709120 bytes (5,4 GB) copied, 10,527 s, 510 MB/s
# ls -l
total 8388608
-rw-r--r-- 1 root root 5368709120 Oct 19 16:04 test
# du
8388608 .

對於整個文件系統,它似乎在一定程度上做到了這一點。當添加的文件小於文件系統大小的 1% 時,此文件系統會報告磁碟已滿:

# df
/dev/sdb6  40957913088 35624042728 5333870360  87% /xfs-export

是不是做 mkxfs 時的一些花哨的選項造成的(類似於 ext2 中保留的 5%)?

# uname -a
Linux server 2.6.39-bpo.2-amd64 #1 SMP Tue Jul 26 10:35:23 UTC 2011 x86_64 GNU/Linux

我已經很久沒有重現這個問題了。我想我現在明白了:

$ ls -l
total 0
$ dd if=/dev/md0 >> a bs=10000k &
$ ls -l
total 9111552
-rw-r--r-- 1 rt rt 5816320000 Jan  7 23:31 a

它一直停留在此直到dd完成(或被殺死) - 即使dd被暫停。之後事情看起來很正常:

$ kill %1; ls -l
total 20120000
-rw-r--r-- 1 rt rt 20602880000 Jan  7 23:33 a

所以它看起來好像 xfs 正在為文件擴展保留空間。

問題結束了dd,但可能還有一些其他文件打開可以證明保留是合理的。

我強烈懷疑您看到瞭如此奇怪的數字,因為您將環境變數 BLOCKSIZE 設置為 640。BLOCKSIZE 會影響 ls、du 和 df 列印的內容。將 BLOCKSIZE 設置為“1024”或“1k”,您應該會看到預期的輸出。

引用自:https://unix.stackexchange.com/questions/22939