在一个目录中创建和挂载包含 > 10M 文件的 ext4 卷的最佳选择

lig*_*gos 6 linux filesystems ext4

什么是相应的选项,mkfsmount用含>千万文件的读访问的文件夹中的文件系统的ext4?

到目前为止我所拥有的:

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
Run Code Online (Sandbox Code Playgroud)

一些上下文是有序的。我正在做一个稍微(好吧,非常)疯狂的实验,涉及查看不同的文件系统如何在一个装有数百万个小文件的文件夹中执行。最终,我会将 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
Run Code Online (Sandbox Code Playgroud)

我的自然栖息地是Windows NTFS世界,和选项的数量mountmkfs有点令人生畏。所以我正在寻找有关哪些选项可能会影响我的表现的指导。

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

Chr*_*rin 3

注意:安全建议

这些说明是不安全的,不应该在没有预防措施的情况下在生产环境中使用。

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

使用风险自担


如果您只是喜欢将其作为测试环境,我会推荐 ext4 选项

noatime,data=writeback,barrier=0,nobh,errors=remount-ro
Run Code Online (Sandbox Code Playgroud)

  • 禁用读取时的访问时间
  • 延迟写入元数据
  • 禁用日志提交的正确磁盘排序
  • 尝试避免关联缓冲区头
  • 错误时重新安装为只读

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

dir_index
    Use hashed b-trees to speed up lookups in large directories.
Run Code Online (Sandbox Code Playgroud)

有用的