ディレクトリあたりのファイル数

ディレクトリあたりのファイル数

約100,000個の小さなファイルを含むディレクトリがあります(各ファイルには1〜3行があり、各ファイルはテキストファイルです)。このディレクトリのサイズはそれほど大きくありません(< 2 GB)。データは専門的に管理されたNFSサーバーにあります。サーバーはLinuxを実行します。ファイルシステムがext3であるようですが、わかりません。また、サーバーへのルートアクセス権がありません。

これらのファイルは、私が制御できない大規模な科学実験の結果です。ただし、結果を分析する必要があります。

このディレクトリのすべてのI / O操作/処理は非常に遅いです。ファイルを開く(Pythonではfopen)、開いたファイルを読む、ファイルを閉じるのはとても遅いです。 ls、duなどはbashでは機能しません。

問題は次のとおりです。

Linuxでディレクトリを処理、開いて読み取ることができるファイルの最大数は何ですか?答えは、ファイルシステムの種類、カーネルバージョン、サーバーバージョン、ハードウェアなど、さまざまな要因によって異なります。可能であれば、経験則を望んでいます。

ベストアンサー1

お分かりのように、これは主にファイルシステムの種類とオプション、およびある程度カーネルバージョンなどの多くの要因によって異なります。 ext2/ext3/ext4ファミリでは、dir_indexこのオプションが出たとき(ext3が最初にリリースされてからしばらくして)、大幅に改善されました。リニアリスト(リニアタイムアクセス)ではなく、検索ツリー(ログタイムアクセス)として保存されたディレクトリを作成しました。 )。これはNFSを介して見ることはできませんが、管理者に連絡できる場合は、管理者に実行を依頼することができますtune2fs -l /dev/something |grep features(アップグレードするように説得することもできます)。サイズは重要ではなく、ファイル数だけ重要です。

があるとしてもdir_index10万個は多いと感じられるだろう。理想的には、ファイルを作成したプログラムの作成者に1レベルのサブディレクトリを追加するようにします。パフォーマンスの低下を防ぐために、ext2またはext3にreiserfsを使用しないことをお勧めします。各ディレクトリは約1,000個のファイルに制限されており、reiserfsを使用する場合の制限はdir_index20,000個です。dir_indexファイルの生成方法を制御できない場合は、他の作業を実行する前にファイルを別のディレクトリに移動してください。

おすすめ記事