创建和挂载一个目录中包含超过 10M 个文件的 ext4 卷的最佳选项

创建和挂载一个目录中包含超过 10M 个文件的 ext4 卷的最佳选项

mkfs对于一个包含超过 1000 万个文件的文件夹,对于 ext4 文件系统,有哪些适当的选项mount可供读取?

我目前拥有的:

umount /media/dirsizetest
mkfs.ext4 -L DIRSIZETEST -E lazy_itable_init=1 -E lazy_journal_init=1 -m 1 /dev/sda1
mount -t ext4 -o nodiratime /dev/sda1 /media/dirsizetest

先来介绍一下背景。我正在做一个稍微有点(好吧,非常)疯狂的实验,看看不同的文件系统在一个装满数百万个小文件的文件夹中的表现如何。最终我会用这个方法把一个 1TB 的驱动器装满(我告诉过你这是一个疯狂的实验!)。

访问模式大致如下:

Recreate the volume from scratch (using mkfs) and mount it.
Create a sub-directory, fill it with N files in sequence (named 1...N)
    (where N can be up to 2^63)
Read all files in order
Read all files in random order
Print how it takes

我习惯使用 Windows NTFS,而 和 的选项数量mount有点mkfs令人望而生畏。因此,我正在寻找指导,了解哪些选项可能会影响我的性能。

我在 64 位 Ubuntu 12.04 桌面环境中工作。

答案1

注意:安全建议

这些说明是不安全的,不应在生产环境中不加预防措施地使用。

例如,电池供电的 RAID 卡可以帮助降低风险。

使用风险自负


如果你只是喜欢将其作为测试环境,我建议使用 ext4 选项

noatime,data=writeback,barrier=0,nobh,errors=remount-ro

  • 禁用读取时的访问时间
  • 延迟写入元数据
  • 禁用强制执行日志提交的正确磁盘排序
  • 尝试避免关联缓冲区头
  • 发生错误时重新挂载只读

对于 mkfs.ext4 我只能找到选项

dir_index
    Use hashed b-trees to speed up lookups in large directories.

有用的

答案2

我进行的一些研究发现了以下链接。Chris Perrin 的回答提供了一个简短的选项列表;这些应该可以提供额外的参考资料。

相关内容