web-dev-qa-db-ja.com

ファイルの数はfsckのパフォーマンスに影響しますか?

fsckを実行すると、1,000,000ファイルの100GBディスクは100ファイルの100GBディスクよりも時間がかかりますか?

4
IMB

これは、ファイルシステムとfsckで使用するスイッチによって異なります。

fsckがチェックして修復しようとするもの は、スイッチなしで呼び出されたときにfsckが何をするかについてかなり詳細に説明しています。

一部のチェックには一定の時間がかかり(例:スーパーブロックチェック)、それらの多くはfsckが処理する必要のあるiノードの数(例:リンクカウントチェック)に依存し、その他はファイルシステムのサイズ(例:通常のデータ)に依存しますブロックチェック)。

-cスイッチがないと、fsckは通常のファイルの内容をチェックしないため、ファイルのサイズは関係ありません。不良ブロックをチェックする場合でも、実行時間はファイルシステムのサイズに応じて増加するだけです。パーティションのどの部分が占有されているかは、実行時間には影響しません。1

ファイルシステムの inodes の数は一定です。つまり、作成時に決定されます。各ファイルのメタデータは、そのようなiノードの1つに保存されます。 ext4 によると、未使用のiノードはext4ではそのようにマークされていますが、ext3ではマークされていません。したがって、fsckの実行時間は、ext4ではファイル数とともに増加しますが、ext3では一定(および高)です。

次の図はこれを示しています。

comparison

さまざまなファイル数がさまざまな色で表されていることに注意してください。 210万、10万、さらにはゼロのファイルを含むext3のグラフは同じです。 2.1Mファイルと100kファイルのext4のグラフは、それぞれ大きな違いを示しています。

対照的に、実行時間はext3のiノードの数とともに増加しますが、未使用のiノードはext4の実行時間に影響を与えません。


1 空のパーティションでfsck -cを実行することにより、経験的に検証されています。

9
Dennis