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


4

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


明確にするために:1,000,000個のファイルと100個のファイルは同じ量のスペースを占有しますか?
デニス

@Dennisはい、同じスペースが占有されています。
IMB

おそらく遅くなります。ファイル名のリストを一度に1つずつ調べ、それらが正しいことを確認する必要があります。どれだけ遅くなるかは、ファイルシステム、ハードドライブの速度、プロセッサの速度にも依存します。また、ファイルシステムのコードがマルチスレッドのコードであるかどうか。
サイバーナード

回答:


9

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

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

一定の時間がかかるチェック(スーパーブロックチェックなど)、fsckが処理する必要があるiノードの数に依存するチェック(リンクカウントチェックなど)、ファイルシステムのサイズに依存するチェック(通常のデータなど)ブロックチェック)。

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

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

次の図にこれを示します。

比較

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

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


1fsck -c空のパーティションで実行して経験的に検証しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.