我正在构建一项服务,需要在文件系统上存储大量文件。我以前听说过,处理大量文件时最好按文件夹分开文件。这对于现代 Linux 文件系统(例如 ext3、ext4 和 btrfs)真的准确吗?如果是这样,我应该将文件划分为多少?我应该将 1000 个文件保存到一个文件夹中吗?
我当前的设置将它们分为数百、数千、数万和数十万,如下所示:
stream id: 123456
1/2/3/4/123456.file
stream id: 654321
6/5/4/3/654321.file
stream id: 5
0/0/0/0/5.file
这对于我的申请有意义吗?
答案1
您还应该考虑要创建的文件夹的数量。
在相关问题中,出于性能原因,一般规则似乎是每个目录最多 20k 个文件:
在获得可接受的性能的情况下,一个 ext3 目录中的最大文件数是多少?