web-dev-qa-db-ja.com

UNIXのファイル数に制限はありますか?

ファイルシステム内のUNIXのファイル数に制限はありますか?

3
Leonid

ファイルシステムの種類によって異なります。デフォルトのパラメータでext4を使用している場合は、最大で次のものを使用できます。

  • 合計40億ファイル。
  • 1つのディレクトリに64000のサブディレクトリ。
  • 1つのファイルで最大16TB。

これらの一部は構成可能であり、メディアの実際のストレージスペースによって明らかに制限されます。ファイルシステムタイプのドキュメントを読むのが最善です。

プロセスが一度に開くことができるファイルハンドルの数について話している場合、それはシステムによって異なります。 ulimit -aはLinuxシステムで通知し、デフォルトで1024になる可能性があります。

注:数字はext4ウィキペディアのページから取得したものです。

8
Cameron Skinner

これは、参照しているファイルシステムとコンテナによって異なります-ディレクトリ内、ボリューム内。 EXT3ファイルシステムの詳細については、これを参照してください リンク

iノードの最大数(したがって、ファイルとディレクトリの最大数)は、ファイルシステムの作成時に設定されます。 Vがバイト単位のボリュームサイズの場合、デフォルトのiノード数はV/213(またはブロック数のいずれか少ない方)で与えられ、最小値はV/223で与えられます。ほとんどのアプリケーションでは、デフォルトで十分であると見なされていました。 1つのディレクトリ内のサブディレクトリの最大数は32000に固定されています。

同様のパラメータが他のファイルシステムにも定義されています。

3
Neera

制限が心配な場合は、ZFSを使用して制限を忘れてください。

ZFS FAQ からの引用:

ZFSにはどのような制限がありますか?
ZFSの制限は非常に大きくなるように設計されているため、実際の操作では決して発生しません。 ZFSは、各ストレージプール、ファイルシステム、ファイル、またはファイル属性に16エクサバイトを格納できます。 ZFSは、ディレクトリ内のファイルまたはディレクトリ、ファイルシステム内のファイルシステム、またはファイルシステムのスナップショットなど、数十億の名前を格納できます。 ZFSは、ファイルシステム内のファイル、ファイルシステム、ボリューム、またはプール内のスナップショットなど、何兆ものアイテムを格納できます。

3
jlliagre