想要和作者刘爱贵博士还有全世界的大牛讨论SSD及存储相关技术?加nanoarch为微信好友,拉你进ssdfans微信群
作者简介:
刘爱贵
中科院博士,大道云行创始人,当前专注于Server SAN领域。GlusterFS技术专家,长期从事存储领域研发工作,分式存储资深理论研究与实践者。 Email: Aigui.Liu@gmail.com QQ:9187434 微博: http://weibo.com/liuag 微信:aigui_liu
这篇博客是2010年写的,有问题请留言或者在ssdfans微信群讨论。
最近由于工作需要,对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
转载自刘爱贵博士的博客:
http://blog.csdn.net/liuaigui/article/details/5630912