最近由于事情需要,对ext3, ext4, reiserfs, reiser4, xfs, jfs, btrfs, nilfs2, logfs多种文件系统在SSD固态硬盘上的机能举办了全面的测试评估与阐明,为实际应用选择SSD文件系统提供参考,并给出机能优化发起。测试中利用的Benchmark包罗postmark, randomio, bonnie++, iozone, filebench,以及dd, 编译内核, 建设/删除海量文件目次等等。
1、SSD文件系统选择
EXT4、Reiserfs在机能方面表示较优,个中EXT4数据吞吐量突出,Reiserfs在IOPS(元数据操纵)方面较优。
Btrfs、Nilfs2在机能方面表示稍差,但两者均是日志布局(log-structure),Btrfs更是具有COW/WAFL特性,并对针对SSD举办了优化。因此,有利于SSD的损耗平衡,耽误利用寿命。
对付频繁小文件应用,发起选择Reiserfs, ext4, btrfs;对付大文件应用,发起选择ext4,btrfs;假如SSD寿命优化机能,则发起选择Btrfs, nilfs2。至于出产系统选择哪个文件系统,请团结线上实际测试参考。
2、关于logfs文件系统
logfs也是一种日志布局文件系统,并且可以直接事情与SSD,这与JFFS/YAFFS差异。可是,测试功效表白,logfs今朝很是不成熟,仍不不变,未到达实际应用尺度,诸如内核编译、大量文件目次建设/删除、postmark等benchmark均未能通过测试。由于SSD妨碍,randomio, bonnie++, iozone, filebench未完成。因此,不发起当前阶段实际应用。
3、SSD机能特点
SSD数据寻址时间很小,甚至可以忽略不计,顺序与随机IO机能相差不大。SAS、SATA磁盘随机IO机能要小于顺序IO许多。
SSD读机能要优于写机能,这是由于写前擦除、擦除块界线对齐、损耗平衡等原因所致。
SSD目次建设/删除操纵机能与SAS/SATA相差不大,这与VFS和详细文件系统元数据组织与操纵法则相关。
4、SSD文件系统优化
1、Cache
假如SSD带有DRAM缓存,请打开cache。
2、readahead
打开块驱动措施预读成果,预读扇区数发起256。(参考EXT3文件系统优化)
3、I/O scheduler
SSD数据寻址时间很是小,甚至可以忽略不计,不需要对IO请求举办插入和排序。因此,noop是最抱负的调治算法。
4、journal
假如文件系统支持封锁journal,则封锁;不然,假如支持data=writeback,则在mount时指定。
5、文件系统参数
请参考Ext3文件系统优化,凡是保持defaults,非凡环境请参考mkfs参数。
6、mount参数
ext3 defaults,async,noatime,nodiratime
ext4 defaults,async,noatime,nodiratime,data=writeback,barrier=0
xfs defaults,async,noatime,nodiratime,barrier=0
reiser4 defaults,async,noatime,nodiratime
reiserfs defaults,async,noatime,nodiratime,notail,data=writeback
jfs defaults,async,noatime,nodiratime
btrfs defaults,async,noatime,nodiratime,ssd
nilfs2 defaults,async,noatime,nodiratime
logfs defaults,async,noatime,nodiratime,data=writeback,barrier=0