1. ホーム
  2. filesystems

[解決済み] 1つのディレクトリにいくつまでファイルを置くことができますか?

2022-03-16 17:44:22

質問

1つのディレクトリにいくつのファイルを保存するかは重要ですか?もしそうなら、1つのディレクトリにいくつのファイルがあると多すぎるのでしょうか、また、ファイルが多すぎるとどのような影響があるのでしょうか?(これはLinuxサーバー上です)。

背景 私は写真アルバムのウェブサイトを持っており、アップロードされた画像はすべて8桁のIDにリネームされます(例えば、a58f375c.jpg)。 これは、ファイル名の競合を避けるためです(たとえば、多数の "IMG0001.JPG" ファイルがアップロードされた場合など)。 元のファイル名と有用なメタデータは、データベースに保存されます。 現在、imagesディレクトリには約1500のファイルがあります。 このため、(FTPやSSHクライアントを介して)ディレクトリ内のファイルを一覧表示するのに数秒かかります。 しかし、それ以外の効果があるとは思えません。 特に、画像ファイルがユーザーに提供される速度には、何の影響もないようです。

サブディレクトリを16個作って、画像の数を減らそうかと考えています。そして、ファイル名の最初の16進数に基づいて、画像をサブディレクトリに移動させるのです。 しかし、FTP/SSHで時々ディレクトリをリストアップする以外、そうする理由があるのかどうか、確信が持てません。

どのように解決するのですか?

FAT32 :

  • 最大ファイル数 268,173,300
  • 1ディレクトリあたりの最大ファイル数:2 16  - 1 (65,535)
  • 最大ファイルサイズ:2GiB - 1なし LFS 4GiB - 1個

NTFS :

  • 最大ファイル数 2 32  - 1 (4,294,967,295)
  • 最大ファイルサイズ
    • 実装:2 44  - 2 6 バイト(16TiB-64KiB)
    • 理論値:2 64  - 2 6 バイト (16 EiB - 64 KiB)
  • 最大ボリュームサイズ
    • 実装:2 32  - 1クラスタ(256TiB-64KiB)
    • 理論値:2 64  - 1クラスタ(1YiB - 64KiB)

エクスト2 :

  • 最大ファイル数 10 18
  • 1ディレクトリあたりの最大ファイル数 ~1.3 × 10 20 (10,000を超えるとパフォーマンス上の問題が発生します。)
  • 最大ファイルサイズ
    • 16GiB(ブロックサイズ:1KiB)
    • 256GiB(ブロックサイズ:2KiB)
    • 2TiB(ブロックサイズ:4KiB)
    • 2TiB(ブロックサイズ8KiB)
  • 最大ボリュームサイズ
    • 4TiB(ブロックサイズ1KiB)
    • 8TiB(ブロックサイズ:2KiB)
    • 16TiB(ブロックサイズ4KiB)
    • 32TiB(ブロックサイズ8KiB)

エクスト3 :

  • 最大ファイル数:min(volumeSize / 2) 13 , numberOfBlocks)
  • 最大ファイルサイズ ext2と同じ
  • 最大ボリュームサイズ。 ext2と同じ

エクストレイル :

  • 最大ファイル数 2 32  - 1 (4,294,967,295)
  • 1ディレクトリあたりの最大ファイル数:無制限
  • 最大ファイルサイズ:2 44  - 1バイト(16TiB - 1)
  • 最大ボリュームサイズ:2 48  - 1バイト(256TiB - 1)