最近由于工作需要,对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参数 ext3defaults,async,noatime,nodiratime ext4defaults,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 btrfsdefaults,async,noatime,nodiratime,ssd nilfs2defaults,async,noatime,nodiratime logfsdefaults,async,noatime,nodiratime,data=writeback,barrier=0
200字范文,内容丰富有趣,生活中的好帮手!