一个目录(在任何主机中)中的文件数量是否有任何限制?
如果我有一个包含 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
我会说最大文件数是特定于操作系统和特定于文件系统的。但是在访问文件时,在一个目录中拥有大量 ob 文件会极大地影响您的性能。
我无法为您提供任何特定 os/fs 的任何数字,但如果您遇到性能问题,也许可以提供解决方案:
在 mediawiki 软件(即运行 wikipedia 的软件)中,他们使用子目录来解决该问题。这是他们存储媒体文件的方式:
- md5-hash 文件名
- 将 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 回答