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


20

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

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


3
はるかに良い質問があります:私はいくつ使用する必要がありますか?stackoverflow.com/questions/466521/...
ヨアヒム・ザウアー

1
私は自分のサイトのURLがsite.com/username/などのように見えることを望んでいますが、(運が良ければ)200万人以上のユーザーを獲得すると考えています。私は、フォルダ内のフォルダの他のpossibilitieを見ていたmodrewriteでPHPなどのスクリプトを使用したい

1
自分自身に感謝し、書き換えスキームを使用してサブディレクトリを作成します。
ピーターアイゼントラウト

回答:



14

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

古いファイルシステム設計(ext2UFSHFS +)では、ディレクトリに多くのファイルがある場合、処理が遅くなる傾向があります。通常、10,000個程度のファイルで問題が始まります。新しいファイルシステム(ReiserFSXFSZFSUFS2)を使用すると、一般的なパフォーマンスのボトルネックを見ることなく、ディレクトリ内に数百万のファイルを配置できます。

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

UFS2で数百万個のファイルがあるディレクトリを喜んで使用しましたが、ディレクトリを削除するまで何の問題もありませんでした。これには数日かかりました。


12

ファイルシステムが作成されたiノードの数に依存します。実行中

df -i 

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


1
ただし、多くのファイルシステムには、空きiノードの数に関係なく、ディレクトリごとのファイルの制限があります。

1
はい、しかし、質問はUNIXファイルシステムを対象としており、私が知る限り、すべての最新のUNIXファイルシステムはディレクトリ内のファイルの数を制限しません。

6

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

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

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

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

ファイルのハッシュに従って適切なサブディレクトリにファイルを保存しますbasename。便利なハッシュを選択してください。最初の文字が単純な場合に役立つかもしれません。


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


5
XFSなどの最新のファイルシステムには、線形検索が含まれていません。XFSのB-Treeテクノロジーにより、洗練されたインデックス(uoks.uj.edu.pl/resources/flugor/IRIX/xfs-whitepaper.htmlから)を使用して、ファイルの場所を含むブロックやエクステントに直接アクセスできます。
クリスチャン・シウピトゥ2009年

あ!知りませんでした。ありがとう。テキストに追加されます。
dmckee 09年

1
ext3の場合、「dir_index」機能を有効にする必要があります、cf。tune2fs(8)。

0

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


0

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

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

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

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