SSD固态硬盘文件系统选择与性能优化
来源:互联网 发布:mac怎么用u盘做启动盘 编辑:程序博客网 时间:2024/05/16 08:34
最近由于工作需要,对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
- SSD固态硬盘文件系统选择与性能优化
- SSD固态硬盘文件系统选择与性能优化
- 基于SSD固态硬盘的数据库性能优化
- 基于SSD固态硬盘的数据库性能优化
- 基于SSD固态硬盘的数据库性能优化
- SSD固态硬盘优化教程
- 固态硬盘SSD与机械硬盘HDD
- linux下固态硬盘ssd优化
- ssd固态硬盘是什么
- SSD 固态硬盘
- SSD固态硬盘介绍
- 固态硬盘SSD
- 固态硬盘(ssd)
- 固态硬盘SSD
- 机械硬盘(HDD)与固态硬盘(SSD)
- SSD固态硬盘的安装优化点点收集
- WIN7 SSD固态硬盘做系统盘的优化
- 固态硬盘(SSD)扫盲
- Asp.net MVC2学习笔记6-简单实例(Movie)(下)
- HTML中ID与Name的区别2
- C++接口(转载)
- 基于IPagedList 的 Asp.Net MVC 分页
- asp.net调用ocx
- SSD固态硬盘文件系统选择与性能优化
- Oracle log files
- jquery学习之旅-2010-5-28
- 人际关系
- c#实现窗体抖动
- (图解)解决无法连接到WMI提供程序和SQL Server 2005到主机的TCP/IP连接失败
- 如何在自己编译opencore的时候显示命令
- 如何导出wince6.0的SDK 添加MFC支持
- Asterisk 配置文详解和Freepbx功能键逐个数(转载)