Ubuntu の ext4 ファイル システムのディレクトリ エントリの現在の構造を考えると、ファイル システムに含めることができるファイルの最大数はいくつですか?
ファイル システムに含めることができるファイルの最大数を計算する一般的な方法は何ですか?
答え1
Ext4 には理論上のファイル制限が 40 億個ありますが、これは各ファイルを識別するために使用する inode 番号のサイズによって制限されます (ext4 は 32 ビットの inode 番号を使用します)。ただし、John が言うように、ext4 は inode テーブルを静的に割り当てるため、実際の制限はファイルシステムの作成時に設定されます。
df コマンドは、ファイルシステム上の空き inode の数を表示します。
$ df -i
Filesystem iused ifree %iused Mounted on
/dev/disk0s3 55253386 66810480 45% /
/dev/disk1s3 55258045 66805821 45% /Volumes/Clone
Ext4はディレクトリごとに無制限のサブディレクトリをサポートしますが、デフォルトでは64,000に制限されます。これは設定可能です。Kernel Newbies の ext4 記事。
詳細については、新しい ext4 ファイルシステム: 現在の状況と将来の計画2007 Linux シンポジウムより。
答え2
厳密に言うと、一つではありません。それは状況によります。ext4ファイルシステムを作成するときに、inode テーブルこれにより、ファイル システムが一度に保持できるディレクトリまたはファイルの総数が制御されます。
答え3
Ubuntu ではありませんが、Redhat Linux では、300 万個のファイルを含むディレクトリに対して find などの基本コマンドを実行すると、「引数が多すぎます」というエラーが発生して失敗します。ls は、パラメータが含まれていない場合は正常に実行されますが、フィルタ パラメータが追加されるとすぐに同じエラーが発生して失敗します。
このような基本コマンドの信頼性が必須要件であると仮定すると、300 万ファイルは多すぎると思います。