本发明涉及固态硬盘技术领域,特别是涉及一种提升固态硬盘在linux系统下IO性能的方法。
背景技术:
目前,随着云计算、虚拟化以及大数据等新型技术的发展,对数据存储的带宽和容量要求越来越高,同时对数据计算的时间和响应速度要求也越来越严格。固态硬盘作为新兴技术在近几年得到了快速发展,同时在企业和个人使用领域也越来越广泛。
基于硬件层面提升固态硬盘性能有很多方法,例如开启主板AHCI模式,禁用LPM节能技术,刷新固态硬盘固件等等。而且固态硬盘的性能瓶颈都是由原始的闪存带宽,损耗平衡算法的效率(固件)以及接口(SATA、PCI-E等)共同决定的,后续随着SATA接口的不断升级和闪存颗粒的更新,固态硬盘的性能会不断提升,这些都是基于硬件性能来进行处理的,固态硬盘的IO性能仍然较低。
技术实现要素:
本发明的目的是提供一种提升固态硬盘在linux系统下IO性能的方法,以实现提高固件硬盘的IO性能。
为解决上述技术问题,本发明提供一种提升固态硬盘在linux系统下IO性能的方法,该方法包括:
在linux系统下关闭日志文件系统Ext4的日志记录功能;
在频繁删除写入数据时,利用磁盘快照功能模块Volume Bitmap快速生成一个磁盘快照来标记所述磁盘快照的源数据已经删除;
设置linux系统的系统参数noatime,通过系统参数noatime来禁止记录最近一次访问时间戳;
在固态硬盘启动时,在linux系统内核中加入调度参数,对固态硬盘采用期限调度。
优选的,关闭日志文件系统Ext4的日志记录功能的运行命令为:
tune2fs-O^has_journal/dev/sda1。
优选的,所述固态硬盘具有trim功能,所述trim功能用于自动整理磁盘碎片和快速删除文件。
优选的,所述设置linux系统的系统参数noatime之前,还包括:
开启固态硬盘的trim功能。
优选的,所述在linux系统下关闭日志文件系统Ext4的日志记录功能之后,还包括:
在固态硬盘中的文件被访问、创建或者修改时,利用日志文件系统Ext4记录文件的时间戳。
优选的,所述通过系统参数noatime来禁止记录最近一次访问时间戳,包括:
通过系统参数noatime来禁止日志文件系统Ext4记录最近一次访问固态硬盘中的文件的时间戳。
优选的,所述对固态硬盘采用期限调度之后,还包括:
利用调度参数优化固态硬盘I/O调度程序。
本发明所提供的一种提升固态硬盘在linux系统下IO性能的方法,在linux系统下关闭日志文件系统Ext4的日志记录功能;在频繁删除写入数据时,利用磁盘快照功能模块Volume Bitmap快速生成一个磁盘快照来标记所述磁盘快照的源数据已经删除;设置linux系统的系统参数noatime,通过系统参数noatime来禁止记录最近一次访问时间戳;在固态硬盘启动时,在linux系统内核中加入调度参数,对固态硬盘采用期限调度。可见,关闭日志文件系统Ext4的日志记录功能能够减轻固态硬盘负担并且增加固态硬盘寿命,并且在频繁删除写入数据时,固态硬盘借助Volume Bitmap快速的生成一个磁盘快照来标记此处数据已经删除,这样当在该区块写入新的数据,就不用花时间去擦除原本的数据,节省了更多的寻址标记时间,提升IO性能,并且,Linux系统提供noatime参数来禁止记录最近一次访问时间戳,减少一些记录时间戳的动作会提升固态硬盘的IO效率,从而能提升文件系统的性能,而且在系统内核中加入参数来对硬盘采用期限调度,这样会平衡的分配I/O请求,优化固态硬盘的I/O调度程序,提升IO性能,所以本方法是基于Linux操作系统来实现对固态硬盘的优化,从调整linux系统下的参数来提升固态硬盘的性能,整个过程简单、易用、效率高,实现提高固件硬盘的IO性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明所提供的一种提升固态硬盘在linux系统下IO性能的方法的流程图。
具体实施方式
本发明的核心是提供一种提升固态硬盘在linux系统下IO性能的方法,以实现。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明所提供的一种提升固态硬盘在linux系统下IO性能的方法的流程图,该方法包括:
S11:在linux系统下关闭日志文件系统Ext4的日志记录功能;
S12:在频繁删除写入数据时,利用磁盘快照功能模块Volume Bitmap快速生成一个磁盘快照来标记磁盘快照的源数据已经删除;
S13:设置linux系统的系统参数noatime,通过系统参数noatime来禁止记录最近一次访问时间戳;
S14:在固态硬盘启动时,在linux系统内核中加入调度参数,对固态硬盘采用期限调度。
可见,关闭日志文件系统Ext4的日志记录功能能够减轻固态硬盘负担并且增加固态硬盘寿命,并且在频繁删除写入数据时,固态硬盘借助Volume Bitmap快速的生成一个磁盘快照来标记此处数据已经删除,这样当在该区块写入新的数据,就不用花时间去擦除原本的数据,节省了更多的寻址标记时间,提升IO性能,并且,Linux系统提供noatime参数来禁止记录最近一次访问时间戳,减少一些记录时间戳的动作会提升固态硬盘的IO效率,从而能提升文件系统的性能,而且在系统内核中加入参数来对硬盘采用期限调度,这样会平衡的分配I/O请求,优化固态硬盘的I/O调度程序,提升IO性能,所以本方法是基于Linux操作系统来实现对固态硬盘的优化,从调整linux系统下的参数来提升固态硬盘的性能,整个过程简单、易用、效率高,实现提高固件硬盘的IO性能。
基于上述方法,具体的,关闭日志文件系统Ext4的日志记录功能的运行命令为:tune2fs-O^has_journal/dev/sda1。
其中,固态硬盘具有trim功能,trim功能用于自动整理磁盘碎片和快速删除文件。
进一步的,设置linux系统的系统参数noatime之前,开启固态硬盘的trim功能。
其中,在linux系统下关闭日志文件系统Ext4的日志记录功能之后,还包括:在固态硬盘中的文件被访问、创建或者修改时,利用日志文件系统Ext4记录文件的时间戳。
其中,通过系统参数noatime来禁止记录最近一次访问时间戳的过程具体为:通过系统参数noatime来禁止日志文件系统Ext4记录最近一次访问固态硬盘中的文件的时间戳。
进一步的,对固态硬盘采用期限调度之后,利用调度参数优化固态硬盘I/O调度程序。
本方法在Linux系统下修改系统参数来调优固态硬盘。基于Linux系统使用量的不断上升,同时发挥固态硬盘使用在Linux系统上的优势,节约时间成本。本方法是在原有的系统默认参数的基础上根据固态硬盘设计结构和工作环境,配合Linux开源的特性,人为自定义的按需索取,定制化的使用固态硬盘。同时本方法具有很强的通用性,适用于目前主流的Linux Distribution版本,简单易用。修改系统下的参数和配置文件后,固态硬盘可以在原基础上性能提升N倍,同时不会对系统造成破坏、崩溃等,使其能在系统稳定运行的前提下实现IO性能的提升。
本发明基于固态硬盘的结构和工作特征,大部分可以通过命令快速检测和设置硬盘的各个参数从而提升其性能。另外基于通用性和前瞻性,本发明可以适用常用的Linux版本。在了解其原理和概念的基础上,按指定条件设置固态硬盘后,能在其原工作环境上性能可以提升很多,节省时间成本。
本发明是基于Linux系统,一般Linux+SSD使用优先建议使用Ext4文件格式,因为传统的文件格式仅支持离线TRIM,换句话说文件系统必须只读挂载。Ext4则没有这些限制,允许TRIM后台运行,所以以下过程均是默认在Ext4格式下执行。基于本方法,实施过程如下:
(1)Ext4虽然有很多优势,但是也有弊端,比如会额外记录日志,会增加固态硬盘负担并且影响其寿命,因而需要关闭日志记录功能。
系统下关闭日志记录功能:
运行命令:tune2fs-O^has_journal/dev/sda1
其中,/dev/sda1为系统下识别的磁盘分区号,要卸载分区才能运行该指令。
(2)固态硬盘在支持Trim技术的情况下相比机械硬盘节省了更多的寻址标记时间,例如在频繁删除写入数据时,固态硬盘借助Volume Bitmap快速的生成一个磁盘快照来标记此处数据已经删除,当在该区块写入新的数据,就不用花时间去擦除原本的数据。Linux内核从2.6.33就开始提供TRIM支持,如果内核过低,请升级内核。
系统下验证Trim开启命令:hdparm-I/dev/sda
如果支持会提示:“Data Set Management TRIM supported”
如果支持,继续运行命令:vim/etc/fstab
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1/ext4
defaults,errors=remount-ro 0 1
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1/ext4
discard,defaults,errors=remount-ro 01
(3)一般情况下,Ext4文件系统在文件被访问、创建、修改等的时候会记录文件的时间戳,如果能减少一些记录时间戳的动作会提升固态硬盘的IO效率,从而能提升文件系统的性能。Linux系统提供noatime参数来禁止记录最近一次访问时间戳。
系统下修改命令如下:vim/etc/fstab
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1/ext4
defaults,errors=remount-ro0 1
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1/ext4
defaults,noatime,errors=remount-ro01
(4)优化固态硬盘的I/O调度程序,传统意义上处理I/O请求的核心组件会平衡的分配I/O请求,但是对于固态盘并非是最好的。在系统内核中加入参数来对硬盘采用期限调度,例如指定一块固态硬盘在启动时加入期限调度。
系统下修改命令如下:
echo deadline>/sys/block/xvda/queue/scheduler
同时对IO的算法修改成noop,这样操作系统本身就不做处理,让固态硬盘本身处理。修改成noop的修改命令如下:
echo noop>/sys/block/sda/queue/scheduler。
基于本方法,因为固态硬盘由于其读写速度快,无机械移动部件、无噪声,最重要的是寻址快等优点突出,现在更好的被应用到桌面环境中,而且由于工作原理和传统的磁盘有很大差别,所以在操作系统和应用程序层面会有很大的优化空间,本方法就是基Linux操作系统来实现对固态硬盘的优化,简单、易用、效率高,而且适用于市面上各种Linux版本。
以上对本发明所提供的一种提升固态硬盘在linux系统下IO性能的方法进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。