磁碟緩存對 linux df 結果的影響

磁碟緩存對 linux df 結果的影響

我遇到一個問題,其中 df 結果不可靠。我在 sles 11 sp3 上使用 xfs 檔案系統。
基本上,清除磁碟快取之前和之後的可用大小之間存在很大差異(幾GB)。任何人都知道為什麼磁碟快取使用額外的儲存空間。
例如:

VideoEdge:/ # df
Filesystem     1K-blocks      Used Available Use% Mounted on
...
/dev/sdb2      870942208 824794856  46147352  95% /mediadb
/dev/sdc1      975746564 924536548  51210016  95% /mediadb1
/dev/sdd1      975746564 153177500 822569064  16% /mediadb2

VideoEdge:/ # echo 3 > /proc/sys/vm/drop_caches 

VideoEdge:/ # df
Filesystem     1K-blocks      Used Available Use% Mounted on
/dev/sdb2      870942208 822225756  48716452  95% /mediadb
/dev/sdc1      975746564 923374888  52371676  95% /mediadb1
/dev/sdd1      975746564 148323524 827423040  16% /mediadb2
VideoEdge:/ # df

從上面可以看出,清理磁碟空間後,可用空間就變多了。

我們使用 df 來估計可以使用多少空間,並在 df 表示 stporage 已滿 95% 時嘗試刪除舊資料。由於磁碟快取佔用了不可預測的儲存空間,因此導致了問題。

有人知道為什麼磁碟快取會暫時消耗儲存空間嗎?有沒有辦法計算磁碟快取佔用了多少或磁碟快取可能佔用的最大值?

我們不想清除磁碟緩存,這可能會不時影響效能。

VideoEdge:/ # df
Filesystem     1K-blocks      Used Available Use% Mounted on
rootfs           8259484   5592116   2247724  72% /
udev             2021220       228   2020992   1% /dev
tmpfs            2021220       144   2021076   1% /dev/shm
/dev/sda1        8259484   5592116   2247724  72% /
/dev/sda3      463282160  75389072 387893088  17% /var
/dev/sdb1      104804356     32928 104771428   1% /var/opt/americandynamics/venvr/clipexport
/dev/sdb2      870942208 821370196  49572012  95% /mediadb
/dev/sdc1      975746564 923423496  52323068  95% /mediadb1
/dev/sdd1      975746564 148299180 827447384  16% /mediadb2

/dev/sdb2 on /mediadb type xfs (rw,noatime,nodiratime,attr2,nobarrier,inode64,allocsize=4096k,noquota)
/dev/sdc1 on /mediadb1 type xfs (rw,noatime,nodiratime,attr2,nobarrier,inode64,allocsize=4096k,noquota)
/dev/sdd1 on /mediadb2 type xfs (rw,noatime,nodiratime,attr2,nobarrier,inode64,allocsize=4096k,noquota)

答案1

請參閱:

為什麼我的 XFS 檔案系統突然消耗更多空間並充滿稀疏檔案?

這是 XFS 動態預先分配功能的結果。這些基本上是合併寫入以防止文件碎片的文件緩衝區。有幾個解決方法。

  • du --apparent-size可能會有幫助。
  • XFS 檔案系統的掛載選項,詳細資訊請參閱連結問題

在這兩種情況下,您的檔案系統都處於危險的滿水平 (95%+)。考慮到利用率應該遠低於 80%,少量的緩衝區空間是無關緊要的。您也可以使用df結果,因為這是在任何給定時間真正使用的結果。

相關內容