Debian 上で Web サーバーとデータベースを実行するのに最適なファイル システムはどれですか?
例: Debian ext2 または ext3 では、巨大なサブフォルダーを含む巨大なフォルダーの管理に時間がかかりすぎます。管理タスクに時間がかかりすぎるため、それぞれ 30 分待たずに巨大なサブフォルダーを削除することはできません。
答え1
extX ファイルシステムで dir_index が有効になっていますか? (確認するには tune2fs -l /dev/XXX を実行してください) 有効になっていない場合は、最初のステップとして有効にしてみてください。
XFS は巨大なディレクトリを適切に処理します。
答え2
としてジェームズ指摘したように、ext{2,3} は適切なフラグを使用して巨大なディレクトリを非常にうまく処理します。しかし、時々そう感じないことがあります。
具体的には:
- 最新のファイルシステムは、名前から inode への非常に高速でスケーラブルなマッピングを実行できます。つまり、ディレクトリの大きさに関係なく、任意のファイルを (ほぼ) 瞬時に開くことができます。また、特定のパスに関するクエリ (存在、権限、サイズ、所有者など) への回答は、ディレクトリのサイズにほとんど影響されません。
しかし...
- ディレクトリ全体に対して機能する操作は、そこにあるすべてのファイルを線形に反復処理する必要があり、非常に遅くなる可能性があります。たとえば、
ls
デフォルトではファイル名がアルファベット順に並べ替えられるため、最初にすべてのファイル名を読み取り、並べ替え、表示する必要があり、数千のファイルがあるディレクトリでは数分かかるのは簡単です。もう 1 つの一般的な問題はワイルドカード マッチングです。この場合も、一致するサブセットを返すために既存のファイル名をすべて読み取る必要があります。
結論: 正確に指定されたパスのみを使用する場合は、どのファイルシステムでも問題ありません。ワイルドカードを使用したり、ディレクトリ全体を頻繁に操作したり (一覧表示、コピー、削除) する場合、巨大なディレクトリではどのファイルシステムでも速度が遅くなります。
答え3
まず、ファイルシステムに関する Wikipedia の記事を確認してください。http://en.wikipedia.org/wiki/ファイルシステムの比較。
次に、特定のレベルにそれほど多くのファイルが存在しないように階層を再編成できるかどうかを検討します。
3 番目に、どのようなハードウェアを実行していますか?
4 番目に、これはおそらく非常に意見重視の質問ですが、個人的には ext3 または jfs が好きです。
答え4
これは、「巨大なフォルダ」の詳細、具体的には、多数の小さなファイルが含まれているか、物理的に大きなファイルが含まれているか、またディレクトリのツリーの深さによって決まります。
.XFS のは、大容量のファイルを効率的に処理する上で優れた、非常に堅牢なファイル システムです。RAM に積極的にデータをキャッシュすることと、突然の電源障害によるデータ損失の可能性 (ファイル システムの破損ではなく、データ損失のみ) のため、実稼働環境ではよく問題になりますが、ほぼすべてのファイル システムが、ある程度、同じ問題に悩まされています。もう 1 つの問題は、ディレクトリの追加または削除時にメタデータ操作がやや遅くなることです。ディレクトリ ツリーが深い場合は、これが致命的になる可能性がありますが、却下する前に XFS をテストすることをお勧めします。
ジャフは、CPU 使用率が低く、さまざまな負荷の下でバランスの取れたパフォーマンスを発揮することで知られる、堅牢なファイル システムです。ext3 の安定性を強く望んでいるものの、ext シリーズのファイル システムのパフォーマンス上の問題 (つまり、非効率的な割り当てと遅いディスク アクセス) に対処できない場合は、このファイル システムを使用するのが私の定番です。XFS と比較すると、大きなファイルではそれほど高いパフォーマンスを発揮しないかもしれません。
対象となるワークロードの詳細がわからないため、明確な提案はできませんが、広範囲にわたるチューニングやベンチマークを行う時間がない場合は、JFS が非常に良い選択肢になると思います。