
du
複数の大きなフォルダー (合計 10 ~ 20 TB のファイル、ファイル数は 100,000 未満) に対して 1 時間ごとにcron を実行するようにスケジュール設定した場合の影響を分析しています。
私の理解では、RAM にキャッシュされる inode 情報を読み取るものをdu
使用します。これは正しいですか? それともディスク キャッシュですか? あるいは両方ですか?stats
上記が正しければ、du
頻繁に実行すると次のようになると考えられます。
- システムのパフォーマンスに悪影響を与えず、
- スピンドルに不必要な摩耗を与えないようにしますか?これは議論の余地があるかもしれないが、聞いてくれ
出力に何らかのキャッシュ機能を提供するツールをいくつか読んだことがありますdu
が、私の目的は違いを見つけることなので、それが議論に関連しているかどうかはわかりません。
どうもありがとう!
答え1
私の理解では、du は RAM にキャッシュされる inode 情報を読み取る stats を使用します。これは正しいですか? それともディスク キャッシュですか? あるいは両方ですか?
「RAM にキャッシュ」: ある程度はそうです。完全にではありません。ファイル システム バッファも RAM を消費し、100000 個の inode/extent リストも RAM を必要とするため、「両方」です。(「ディスク キャッシュ」はあまり意味がありません。データ構造はディスク上にあるため、それはキャッシュではなく、基礎となるデータです)。
上記が正しければ、du を頻繁に実行すると次のようになると考えられます。
- システムのパフォーマンスに悪影響を与えず、
そう仮定することはできません。ファイル システム全体が RAM 内にある場合でも、これは依然として大量のデータを使用する操作であり、CPU だけでなく RAM とドライブ インターフェイス ビット幅も使用します。
スピンドルに不要な摩耗を与えない?これは議論の余地があるかもしれないが、聞いてくれ
スピンドルの摩耗は見たことがないので、うーん、ないのでしょうか? また、ハード ドライブは使用中に回転します。そのため、この質問が十分に検討されているかどうかはわかりません。
du 出力に何らかのキャッシュ機能を提供するツールをいくつか読みましたが、私の目的は違いを捉えることなので、それが議論に関連しているかどうかはわかりません。
変化を求めているなら、おそらく逆のアプローチをしているでしょうdu
。ないでは、最適なツールです!
- 実際に、inotify を使用してファイル プロパティの変更について通知を受けることができます。これは、いくつかの変更を取得するためにファイル システム全体を走査するよりも負荷が小さくなります。
du
btrfs 上使用されているストレージについてあなたを欺くでしょうBtrfsは賢いです。コピーされたファイルは、書き込むまで追加のストレージを必要としません。スパースファイル領域も同様です。スナップショットとサブボリュームの概念により、これはすべて概念的に少し難しくなります。du
すべてのファイルサイズを合計するだけです。ディスクの使用状況!
新しい質問 (コメントではなく新しい投稿) を立て、 で解決しようとしている問題をdu
詳しく説明し、現在のアプローチを説明することをお勧めします。ここでの質問は、非常に具体的なアプローチの小さな側面について尋ねているように思われますが、このアプローチで実際の問題が解決するかどうかはわかりません。