1 つのディレクトリ (任意のホスト) 内のファイル数に制限はありますか?
30k (1 から 3ok までの名前) ファイルを含むディレクトリと、10 個しかない別のディレクトリがある場合、特定のファイルを取得するパフォーマンスに大きな違いはありますか?
ありがとう
1636 次
2 に答える
3
ファイルシステムのタイプによって異なります。この質問に対する答えは、現在のファイル システム タイプの仕様に記載されています。
Archlinux Wikiパフォーマンス最適化ページ
概要:
- XFS: 大きなファイルでの優れたパフォーマンス。小さなファイルで低速。/home に適しています。-Reiserfs: 小さなファイルでの優れたパフォーマンス。/var に適しています。
- Ext3: 平均的なパフォーマンス、信頼できる。
- Ext4: 全体的なパフォーマンスが高く、信頼性が高く、sqlite やその他のデータベースでパフォーマンスの問題があります。
- JFS: 全体的なパフォーマンスが良好で、CPU 使用率が非常に低く、停電後の再開が非常に高速です。
- Btrfs: おそらく最高の全体的なパフォーマンス (圧縮あり) と多くの機能。まだ大規模な開発中であり、完全にサポートされていますが、不安定と見なされています。何をしているのかを理解し、データ損失の可能性を覚悟していない限り、このファイルシステムはまだ使用しないでください。
于 2012-06-05T13:29:53.697 に答える
2
ファイルの最大数はOS固有であり、ファイルシステム固有だと思います。しかし、1 つのディレクトリに膨大な数の ob ファイルがあると、ファイルにアクセスするときにパフォーマンスが大幅に低下する可能性があります。
特定の OS/FS の数値を提供することはできませんが、パフォーマンスに問題がある場合の解決策は次のとおりです。
mediawiki ソフトウェア (ウィキペディアが実行されているソフトウェア) では、サブディレクトリを使用してその問題に対処しています。これは、メディア ファイルを保存する方法です。
- md5-ハッシュ ファイルの名前
- md5hash の最初の桁をファイル dir のサブディレクトリとして取得します
- md5hash の最初の 2 桁を、そのサブディレクトリのサブサブディレクトリの名前として取得します
- そこにファイルを保存します
このようにして、彼らは名前だけでファイルを見つけることができますが、無数のファイルに対して適切な os/fs に頼る必要はありません。次のような結果になります。
http://upload.wikimedia.org/wikipedia/commons/7/74/Flag_of_Hamburg.svg
のパスですFlag_of_Hamburg.svg
于 2012-06-05T13:34:21.493 に答える