我已经用标志初始化了一个大的主分区-T small
,mke2fs
系统small
上的配置如下:
small = {
blocksize = 1024
inode_size = 128
inode_ratio = 4096
}
这是一个 800 GB 的 SSD(云驱动器),它将存储 1000 多万个小文件,大小从 ~10KB 到 ~100KB。
我尝试仔细阅读手册页mount
并找出最佳的标志组合,下面是我的列表:
rw
-读和写nosuid
-执行时不需要用户或组 IDnodev
-块开发文件不应该出现在这里noexec
-设置了 exec 位的文件也不受欢迎auto
-允许mount -a
nouser
-只能root
(重新)安装async
-异步写入relatime
-仅当文件被修改时更新访问时间。data=ordered
-大概应该提高读取性能errors=remount-ro
-出现错误时停止书写discard
-推荐使用SSDauto_da_alloc
-在断电的情况下对抗文件系统损坏(也许不需要,因为这是一个云驱动器?)inode_readahead_blks=16
-文件系统将成为大量小文件的存放地,因此较大的预读操作只会降低性能。我不知道平均大小为 50KB 的文件的最佳值,因此只需在此处输入比默认值小一倍的值即可。debug
我确实需要更有经验的人的第二意见。我特别不确定discard
、relatime
、data=ordered
、auto_da_alloc
和inode_readahead_blks
其他标志,我错过了或误解了它们。 有多危险data=writeback
? 这样的标志可能会丢失多少数据,只是最后 5 秒(提交的默认值)吗? 关于这个练习的其他见解?
答案1
你应该只需使用 XFS 文件系统为了这。
ext4 不太适合这种工作负载,因为你使用的是 SSD,而且文件数量非常多。Red Hat 这样做是有原因的现在默认为 XFS。
答案2
为什么不考虑在 Linux 上使用 ZFS?ZFS 绝对优于 ext4,并且被认为可以在 Linux 上投入生产。请参阅http://www.phoronix.com/scan.php?page=news_item&px=MTc4NTM
安装并不困难;参见http://zfsonlinux.org/了解安装信息。