一种固态硬盘性能优化的方法

文档序号:9471093阅读:591来源:国知局
一种固态硬盘性能优化的方法
【技术领域】
[0001]本发明涉及固态硬盘及Linux领域,尤其涉及一种固态硬盘性能优化的方法。
【背景技术】
[0002]闪存(Flash memory)诞生于20世纪80年代末,它是一种存取高速、抗震性强、体积小、容量大、功耗低、掉电数据不丢失的存储介质。闪存在近十年来不断发展,已经被广泛应用于手机、数码相机、游戏机等各种便捷式设备和嵌入式系统中。与传统硬盘相比,闪存在抗震性和数据的存储速度上具有明显优势,因而已经成为替代磁盘的首选存储介质。闪存对突发I/O的响应时间也只有传统硬盘的百分之一,直接将现有数据库系统部署在闪存上,联机事务的处理能力有大约5~10倍的提升,响应时间也有大幅改善。此外,闪存比传统硬盘可靠性更高,MTBF (平均故障间隔时间)优于传统硬盘。闪存的这些优势使它非常适合用于存储数据库,提高数据库的存取效率和降低能耗。
[0003]固态硬盘(SSD: solid-state drive)使用闪存作为存储介质,它拥有闪存的所有优点:数据存储速度快,抗震性强,耗电低等。它已经逐渐被各大厂商用作存储介质。百度也使用SSD全面替代磁盘存储搜索业务的后台信息,成为全球首个大规模商用SSD的互联网公司O固态硬盘(solid-state drive,SSD)泛指使用固体状态记忆体来存储数据的存储设备。用于固态硬盘的记忆体通常有SRAM、DRAM和闪存等。本文所指固态硬盘,特指使用闪存作为记忆体的、用于存储持久数据的存储设备。
[0004]固态硬盘通常由三部分组成,存储芯片、控制芯片和高速缓存。存储芯片也即闪存。因为单片闪存的速度很有限,所以固态硬盘中通常配有8到16块不等的闪存,在控制芯片的帮助下组成类似RAID O的阵列,用以提高其吞吐率。高速缓存通常是几十乃至几百兆的RAM,用以提高响应速度,并可以延缓和减少擦除操作的数量。控制芯片是整个固态硬盘的中枢,负责管理缓存和实现FTL (Flash Translat1n Layer,闪存转换层)
固态硬盘因为使用闪存作为记忆体而不是能旋转的磁盘片,比传统硬盘少了各种机械设备,所以体积小、重量轻,而且省电抗震且速度大大超出磁盘,但因为它的I/O特征尚未明了,数据库系统也并未完全发挥SSD的特性,SSD数据库的性能并没有得到相应的提升。

【发明内容】

[0005]为了解决以上的问题,本发明提出了一种固态硬盘性能优化的方法。本发明主要包括两个方面介绍固态硬盘性能的优化,首先是通过调整参数,对各种查询计划进行了性能测试和分析,总体的查询性能最优。其次是通过了解用户配置及使用场景,有针对的提出硬盘使用策略以求达到最佳性能。
[0006]通过调整参数来调优固态硬盘
I)升级SSD固件
SSD刷固件主要作用是对FLT进行升级,FTL层就是一个让闪存模拟传统硬盘操作的软件层,有了 FTL闪存设备才能使用,FTL层的效率直接影响设备的性能。FTL层的主要作用有逻辑块映射、写前擦除操作和耗损平衡技术。更新固件就是对这些操作的算法进行升级,优化后的算法能提高并有效的使整个读写时间大大缩短,使系统整体性能获得提升。除了能提升性能之外,SSD升级固件还能解决一些旧版本存在的的BUG,因此也可以把SSD的固件升级当成是显卡的驱动升级或者是游戏的升级补丁。因此,升级SSD固件至最新是购买SSD之后首要完成的事。当然任何事物都具有两面性,SSD固件升级能提升产品性能但一定要到官方网站下载固件进行操作,否则可能因升级不当导致固态硬盘故障。
[0007]2)安装系统前,确定B1S中SATA工作在AHCI模式下
开启AHCI模式能够大幅缩短硬盘无用的寻道次数和缩短数据查找时间,这样能让多任务下的磁盘能够高效地使用。所以开启AHCI对于性能提升是非常有必要的。
[0008]3)内核升级并启用TR頂功能
系统内核升级到2.6.37以上,最好用最新的3.00设置禁用disk 1 scheduler模块,并在fstab中添加discard来开启TRIM功能,如:
原始的:
UU I D = 2f6beO Cf-2f 5 4 -4 6 4 6 -b8C6 - 5fbOaaO I ef23 / e x t 4defaults, errors=remount-ro 0 I改后的:
UUID=2f6be0cf-2f54-4646-b8c6-5fb0aa01ef23 / ext4 discard,defaults, errors=remount-ro 0 I
4)4K对齐Linux各大发行版基本上已经在创建分区时也默认首扇区对齐,可以使用sudo /sbin/fdisk -1 /dev/sda (假设ssd是sda)命令,看看各分区首扇区是否能被8整除,如果可以就是对齐了!
5)禁止记录最近一次访问的时间戳
运行” sudo gedit /etc/fstab”来修改fstab文件,在挂载参数中同时加上noatime。noatime这个参数来禁止记录最近一次访问时间戳;
6)配置固态硬盘(SSD)的Ext4
要优化文件系统删除字节区块的效率,就必须确保小于512K的文件分布在不同的删除字节区块上。要做到这一点,必须确保在创建可扩展文件系统时指定了需要使用的条带的宽度和幅度。这些值在页面中指定,默认大小为4KB.要创建一个最佳的可扩展文件系统,应该使用如下命令:
mkfs.ext4 -E stride=128, stripe-width=128 /dev/sdal如果要修改现有的文件系统的参数,可以使用tune2fs实用程序:tune2fs -E stride=128, stripe-width=128 /dev/sdal
7)配置固态硬盘(SSD)的1/0调度程序
优化的第三个部分涉及到I/o调度程序。在内核加载时把elevator=deadline加入到系统引导管理器(GURB)中;在rc.local文件中加入如下命令以便每次当系统重启,期限调度就会应用到指定的磁盘。echo deadline >/sys/block/sda/queue/scheduler
8)清理固态硬盘(SSD)中的数据块
该操作可以确保在删除文件后相应的数据块真正清空,然后在创建新的文件时才能有可用的数据块。如果没有清理操作,一旦数据块空间填满,固态硬盘的性能就会下降。如果使用丢弃挂载选项,当文件删除后,数据块也会被相应地清除,这样可以显着提高固态硬盘的性能。
[0009]启用清理功能,需要在固态硬盘的/etc/fstab配置中为挂载文件系统添加丢弃选项,命令如下:/dev/system/root/ext4 discard, errors=remount-ro, noatime 0 1,该命令同时也添加了 Noatime选项,该选项保证了文件的访问时间不会因为每次读取而更新,从而降低对文件系统的写入次数。在fasab配文件中完成对文件系统的这些修改后,重启计算机,或者通知文件系统重新读取其配置,然后使用/etc/fstab文件中包含的mount-ο命令重新安装每个文件系统。
[0010]通过了解用户配置及使用场景,有针对的提出硬盘使用策略以求达到最佳性能。
[0011]对各种查询计划进行了性能测试和分析,并针对磁盘、SSD混合存储方案和纯SSD存储方案都提出了性能优化的方法。其中,针对混合存储方案,本文提出了一种静态的数据存放方式,在SSD空间非常有限的情况下也能让数据库性能提升2~3倍。而针对纯SSD存储,本文通过调整参数,对各查询的各种查询计划进行了性能测试和分析,总体的查询性能最优。
[0012]I)分析各个品牌SSD性能特征,根据性能特征来调整参数。目前市面上的SSD因为其控制芯片策略的不同、闪存芯片不同,不同品牌SSD的性能会有很大差别。而如果将SSD建立成RAID阵列,则性能特征将继续发生变化。数据库系统应当主动地收集和分析底层设备的性能特征,包括不同方式的读写操作的耗时特征,及从一种操作转换成另一种操作的耗时特征,以便优化性能。例如,应尽快获取顺序操作和随机操作的耗时比,以便选择查
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1