我已经用-T small
标志初始化了一个大的主分区给mke2fs
,系统上的small
configuration如下:
small = { blocksize = 1024 inode_size = 128 inode_ratio = 4096 }
这是一个800 GB的SSD(云驱动器),它将成为一千多万个小文件的家,范围从〜10KB到〜100KB。
我试图彻底地去查看登山手册,找出最好的组合,这里是我的列表:
rw
– 读写 nosuid
– 不需要执行用户或组ID nodev
– 块的开发文件不应该出现在这里 noexec
– 设置了exec位的文件也不受欢迎 auto
允许mount -a
nouser
– 只有root
可以(重新)挂载 async
– asynchronous写入 relatime
– 仅在文件被修改时更新访问时间。 data=ordered
– 大概应该提高阅读性能 errors=remount-ro
– 停止写入错误 discard
– 推荐用于SSD auto_da_alloc
– 在电源故障的情况下打击文件系统损坏(可能不需要,因为这是一个云端硬盘?) inode_readahead_blks=16
– 文件系统将成为一大堆小文件的 inode_readahead_blks=16
,因此大的预读应该只是性能的损失。 我不知道平均大小为50KB的文件的最佳值,所以把这里的值减less到默认值的两倍。 debug
我真的需要在这些问题上有更多经验的人再次提出意见。 我特别不确定discard
, relatime
, data=ordered
, auto_da_alloc
, inode_readahead_blks
和其他标志,这些标志我错过了或者被误解了。 data=writeback
有多危险? 这样的标志可能会丢失多less数据,只是最后5秒(提交的默认值)? 有关此练习的其他见解?
你应该为此使用XFS文件系统 。
ext4并不适合这种工作负载,因为你在SSD上,并且有一个愚蠢的高文件数量。 Red Hat 现在默认使用XFS是有原因的。
为什么不考虑在Linux上使用ZFS? ZFS比ext4高出一筹,在linux上被认为是可以生产的。 请参阅http://www.phoronix.com/scan.php?page=news_item&px=MTc4NTM
安装并不难, 有关安装信息,请参阅http://zfsonlinux.org/ 。