btrfs中頻繁du的效能及影響

btrfs中頻繁du的效能及影響

我正在分析安排 crondu每小時在幾個大文件夾(總共 10-20TB 文件,# 個文件少於 100.000)上運行的影響。

據我了解,dustats讀取緩存在 RAM 中的 inode 資訊。它是否正確?或者是磁碟快取?或兩者?

如果以上是正確的,我可以假設du頻繁跑步會:

  • 不會對我的系統性能產生負面影響
  • 不會對主軸造成不必要的磨損?這可能是個有爭議的問題,但只是幽默一下

我讀到了幾種提供某種輸出快取的工具,du但我的目標是捕捉差異,因此不確定它們與討論相關。

多謝!

答案1

據我了解,du 使用 stats 來讀取快取在 RAM 中的 inode 資訊。它是否正確?或者是磁碟快取?或兩者?

「快取在 RAM 中」:是的,在某種程度上。不完全是這樣,因為檔案系統緩衝區也會消耗 RAM,而且 100000 個 inodes/extent 清單也需要 RAM,所以「兩者」。 (「磁碟緩存」沒有什麼意義:資料結構位於磁碟上,因此這不是緩存,而是底層資料)。

如果上述正確,我可以假設頻繁運行 du 會:

  • 不會對我的系統性能產生負面影響

你不能這樣假設。即使整個檔案系統位於 RAM 中,這仍然是資料密集型操作,並且將使用 CPU 以及 RAM 和磁碟機介面頻寬。

不會對主軸造成不必要的磨損?這可能是個有爭議的問題,但只是幽默一下

我從未見過主軸磨損,所以,嗯,不是嗎?另外,當你的硬碟在使用時,它會旋轉 - 所以,不太確定這個問題是否經過深思熟慮!

我讀到了一些為 du 輸出提供某種快取的工具,但我的目標是捕捉差異,因此不確定它們與討論相關。

如果你追求改變,你可能會倒退。du可能是不是那就選擇工具吧!

  1. 實際上,您可以使用 inotify 來取得有關檔案屬性變更的通知。這比僅僅為了進行一些更改而遍歷整個檔案系統的負載要少!
  2. du在 BTRFS 上會在使用的儲存空間方面欺騙您。 Btrfs 很聰明——複製的文件在寫入之前不需要額外的存儲,稀疏文件區域也不需要,並且快照和子卷的概念使得這一切在概念上有點困難。du只是將所有檔案大小相加。不一樣

du我建議你提出一個新問題(新帖子,而不是評論),在其中詳細描述你試圖解決的問題,並描述你當前的方法。您在這裡的問題似乎是在詢問一種非常具體的方法的一個小方面,我不確定這種方法是否能解決您的實際問題!

相關內容