web-dev-qa-db-ja.com

Unixフォルダが保持できるファイルの最大数はいくつですか?

Unixフォルダが保持できるファイルの最大数はいくつですか?

ファイル数と同じになると思います。

21
PERR0_HUNTER

ファイルシステムごとに異なります http://en.wikipedia.org/wiki/Comparison_of_file_systems

20
basszero

現在のすべてのUnixファイルシステムでは、ディレクトリは事実上無制限のファイル数を保持できます。一方、「無制限」はディスクスペースと inodes によって制限されます。

古いファイルシステム設計( ext2[〜#〜] ufs [〜#〜]HFS + )を使用すると、物事が遅くなる傾向がありますディレクトリに多くのファイルがあります。通常、約10,000個のファイルに問題が生じ始めます。新しいファイルシステム( ReiserFS[〜#〜] xfs [〜#〜][〜#〜] zfs [〜#〜]FS2 )一般的なパフォーマンスのボトルネックを確認せずに、ディレクトリに数百万のファイルを含めることができます。

しかし、ディレクトリに非常に多くのファイルがあることは十分にテストされておらず、それに失敗する多くのツールがあります。たとえば、定期的なシステムメンテナンススクリプトがそれに影響を与える可能性があります。

私はUFS2で数百万のファイルを含むディレクトリを喜んで使用しましたが、ディレクトリを削除するまで何日もかかりませんでした。

15
max

inodes ファイルシステムの作成に使用された数によって異なります。実行中

df -i 

空きiノードの数が表示されます。これは、ファイルシステム、つまりディレクトリが保持できるファイル数の実際的な制限です。

13
klyde

たくさんのファイルを1か所に保存することを考えていると思いますか?

最近のほとんどのUnixファイルシステムでは、1つのディレクトリに多くのファイルを置くことができますが、パスの追跡、ファイルの一覧表示などの操作には、ファイルのリスト。リストが大きくなりすぎると遅くなります。

数千はほとんどの実用的な用途には多すぎると聞いたことを思い出すようです。通常の解決策は、グループ化を分割することです。あれは、

_/some/path/to/dir/a/
/some/path/to/dir/b/
...
/some/path/to/dir/z/
_

ファイルのbasenameのハッシュに従って適切なサブディレクトリに保存します。便利なハッシュを選択してください。最初の文字は単純な場合に使用できます。


Cristian Ciupituは、コメントに [〜#〜] xfs [〜#〜] と、おそらく他の非常に新しいファイルシステムについて、log(N)検索可能な構造を使用してディレクトリの内容を保持していると書いています。したがって、この制約は大幅に 改善 です。

あなたが残したコメントから、あなたはあなたのFSがホストできるファイル/フォルダの数は本当に気にしないと思います。

ModRewriteを使用して、site.com/usernameをsite.com/?user=などの種類に書き換え、すべてのデータをデータベースに保存することを検討してください。ユーザーごとに1つのフォルダーを作成することは、通常は必要ありません(お勧めしません)。

つまり、各ファイルシステムには制限があり、dfはシステムの各パーティションで使用可能なiノードの数を通知します。

0
ℝaphink

ext3最も一般的なLinuxファイルシステム形式の1つは、ディレクトリに約20k以上のファイルがある場合、実際に遅くなります。いくつのファイルを保持できるかに関係なく、1つのディレクトリにその数のファイルが存在しないようにする必要があります。

0
Rory