我通过比较从 500,000 个目录和只有 100 个文件的目录读取文件的速度来测试这一点。结果:两者都同样快。
测试细节:我创建了一个包含 500,000 个文件的目录for x in {1..500000}; do touch $x; done
,运行time cat test-dir/some-file
并将它与另一个只有 100 个文件的目录进行比较。它们的执行速度都一样快,但可能在重负载时存在差异,或者 ext4 和 btrfs 足够聪明,我们不再需要内容可寻址路径?
使用内容可寻址路径,我可以将 500,000 个文件分发到多个子目录中,如下所示:/www/images/persons/a/1/john.png /www/images/persons/a/2/henrick.png ..../ www/images/persons/b/c/frederick.png ...
500,000 个文件通过 nginx 提供给 UA,所以我想避免延迟,但也许这与 ext4 或 btrfs 不再相关?