首页> 中国专利> 一种基于linux操作系统的磁盘性能优化方法及系统

一种基于linux操作系统的磁盘性能优化方法及系统

摘要

本发明公开了一种基于linux操作系统的磁盘性能优化方法,包括:采集当前的磁盘读写信息;根据所述磁盘读写信息计算当前磁盘的读负载和写负载;将所述读负载和所述写负载以及前预设时间内所述磁盘的工作状态,与预设优化条件进行比较,确定所述磁盘的优化级别;根据所述优化级别对应的优化参数,调用优化程序对所述磁盘进行性能优化;该方法可以根据系统当前的磁盘的读写情况进行磁盘的优化,无需人工干预,并能够进行实时的优化,有很高的灵活性;本发明还公开了一种基于linux操作系统的磁盘性能优化系统,具有上述有益效果。

著录项

  • 公开/公告号CN106648472A

    专利类型发明专利

  • 公开/公告日2017-05-10

    原文格式PDF

  • 申请/专利权人 郑州云海信息技术有限公司;

    申请/专利号CN201611262885.8

  • 发明设计人 刘长生;

    申请日2016-12-30

  • 分类号G06F3/06;

  • 代理机构北京集佳知识产权代理有限公司;

  • 代理人罗满

  • 地址 450018 河南省郑州市郑东新区心怡路278号16层1601室

  • 入库时间 2023-06-19 02:06:38

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-04-03

    授权

    授权

  • 2017-06-06

    实质审查的生效 IPC(主分类):G06F3/06 申请日:20161230

    实质审查的生效

  • 2017-05-10

    公开

    公开

说明书

技术领域

本发明涉及计算机技术领域,特别涉及一种基于linux操作系统的磁盘性能优化方法及系统。

背景技术

当前的linux操作系统是一个通用性的系统,系统的运行情况会实时发生变化,在一些运行场景下磁盘的读写负载会非常大,而在某些场景下磁盘的读写负载非常小,但是目前系统的磁盘的设置是固定的,因此在磁盘读写负载较大时不能充分地利用磁盘资源,在磁盘读写负载较小时不能减少磁盘的消耗。

发明内容

本发明的目的是提供一种基于linux操作系统的磁盘性能优化方法及系统,可以根据系统当前的磁盘的读写情况进行磁盘的优化,无需人工干预,并能够进行实时的优化,有很高的灵活性。

为解决上述技术问题,本发明提供一种基于linux操作系统的磁盘性能优化方法,包括:

采集当前的磁盘读写信息;

根据所述磁盘读写信息计算当前磁盘的读负载和写负载;

将所述读负载和所述写负载以及前预设时间内所述磁盘的工作状态,与预设优化条件进行比较,确定所述磁盘的优化级别;

根据所述优化级别对应的优化参数,调用优化程序对所述磁盘进行性能优化。

可选的,采集当前的磁盘读写信息,包括:

通过sysfs采集当前磁盘的读请求合并数和写请求合并数。

可选的,根据所述磁盘读写信息计算当前磁盘的读负载和写负载,包括:

计算当前采集的读请求合并数与上一次采集的读请求合并数的读请求合并数差值,并选取当前采集的读请求合并数与上一次采集的读请求合并数中数值大的读请求合并数作为最大读请求合并数;

将所述读请求合并数差值除以所述最大读请求合并数得到当前磁盘的读负载;

计算当前采集的写请求合并数与上一次采集的写请求合并数的写请求合并数差值,并选取当前采集的写请求合并数与上一次采集的写请求合并数中数值大的写请求合并数作为最大写请求合并数;

将所述写请求合并数差值除以所述最大写请求合并数得到当前磁盘的写负载。

可选的,将所述读负载和所述写负载以及前预设时间内所述磁盘的工作状态,与预设优化条件进行比较,确定所述磁盘的优化级别,包括:

根据当前磁盘的所述读负载和所述写负载确定当前磁盘的工作状态;

判断前预设时间内所述磁盘的工作状态是否与当前磁盘的工作状态一致;

若是,则将所述磁盘对应的优化级别增加一级作为所述磁盘的优化级别;

若否,则将所述磁盘对应的优化级别降低一级作为所述磁盘的优化级别。

可选的,根据当前磁盘的所述读负载和所述写负载确定当前磁盘的工作状态,包括:

将所述读负载和所述写负载分别于对应的读负载阈值和写负载阈值进行比较,判断所述读负载和所述写负载是否均大于对应的所述读负载阈值和所述写负载阈值;

若是,则当前磁盘的工作状态为繁忙状态;

若否,则当前磁盘的工作状态为空闲状态。

可选的,判断前预设时间内所述磁盘的工作状态是否与当前磁盘的工作状态一致,包括:

判断前预设时间内所述磁盘的工作状态是否连续预定次数均与当前磁盘的工作状态一致。

可选的,根据所述优化级别对应的优化参数,调用优化程序对所述磁盘进行性能优化,包括:

根据所述优化级别确定对应的驱动时间参数和磁盘省电模式参数;

利用所述驱动时间参数,调用驱动程序控制所述磁盘的驱动时间;

利用所述磁盘省电模式参数,调用能控程序控制所述磁盘的省电模式。

本发明还提供一种基于linux操作系统的磁盘性能优化系统,包括:

采集模块,用于采集当前的磁盘读写信息;

负载计算模块,用于根据所述磁盘读写信息计算当前磁盘的读负载和写负载;

优化级别确定模块,用于将所述读负载和所述写负载以及前预设时间内所述磁盘的工作状态,与预设优化条件进行比较,确定所述磁盘的优化级别;

性能优化模块,用于根据所述优化级别对应的优化参数,调用优化程序对所述磁盘进行性能优化。

可选的,所述优化级别确定模块,包括:

当前工作状态确定单元,用于根据当前磁盘的所述读负载和所述写负载确定当前磁盘的工作状态;

判断单元,用于判断前预设时间内所述磁盘的工作状态是否与当前磁盘的工作状态一致;

优化级别确定单元,用于若一致,则将所述磁盘对应的优化级别增加一级作为所述磁盘的优化级别;若不一致,则将所述磁盘对应的优化级别降低一级作为所述磁盘的优化级别。

可选的,所述性能优化模块,包括:

参数确定单元,用于根据所述优化级别确定对应的驱动时间参数和磁盘省电模式参数;

性能优化单元,用于利用所述驱动时间参数,调用驱动程序控制所述磁盘的驱动时间;利用所述磁盘省电模式参数,调用能控程序控制所述磁盘的省电模式。

本发明所提供的一种基于linux操作系统的磁盘性能优化方法,包括:采集当前的磁盘读写信息;根据所述磁盘读写信息计算当前磁盘的读负载和写负载;将所述读负载和所述写负载以及前预设时间内所述磁盘的工作状态,与预设优化条件进行比较,确定所述磁盘的优化级别;根据所述优化级别对应的优化参数,调用优化程序对所述磁盘进行性能优化;

可见,该方法能够自动收集磁盘读写负载信息,自动分析磁盘读写情况,并根据磁盘运行情况自动进行磁盘优化;即可以根据系统当前的磁盘的读写情况进行磁盘的优化,无需人工干预,并能够进行实时的优化,有很高的灵活性;本发明还提供了一种基于linux操作系统的磁盘性能优化系统,具有上述有益效果,在此不再赘述。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例所提供的基于linux操作系统的磁盘性能优化方法的流程图;

图2为本发明实施例所提供的基于linux操作系统的磁盘性能优化系统的结构框图。

具体实施方式

本发明的核心是提供一种基于linux操作系统的磁盘性能优化方法及系统,可以根据系统当前的磁盘的读写情况进行磁盘的优化,无需人工干预,并能够进行实时的优化,有很高的灵活性。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

由于磁盘读写负载比较大的情况下,只有提升磁盘的性能才能够更加充分地利用磁盘资源,提升系统性能,在磁盘读写负载较小时则可以调整磁盘的性能来减少磁盘的消耗。因此本实施例通过自动收集磁盘读写负载信息,自动分析磁盘读写情况,并根据磁盘运行情况自动进行磁盘优化。具体请参考图1,图1为本发明实施例所提供的基于linux操作系统的磁盘性能优化方法的流程图;该方法可以包括:

S100、采集当前的磁盘读写信息;

具体的,要进行磁盘优化必须要知道磁盘的读写信息,因此首先要采集磁盘的读写信息。由于本实施例可以动态对磁盘性能进行优化。本实施例中可以实时采集当前的磁盘读写信息;也可以是按照预设采集周期进行采集(例如两秒);当然为了进一步提高用户对于磁盘性能优化时间的可选择性,本实施例还可以指定进行采集磁盘读写信息的时间。例如在每天的忙时下午2点至5点实时或者按照预设时间周期进行磁盘读写信息的采集。本实施例对此并不进行限定。

由于仅根据采集到的一次磁盘读写信息就去进行磁盘性能优化,不能全面表现磁盘当前时段的状态,因此调整过程会出现不准确的缺点。因此本实施例磁盘性能优化不仅需要关注采集数据的这一刻的磁盘读写信息,还需要关注磁盘读写信息的动态变化。因此在采集磁盘读写信息时,要记录磁盘读写信息的时刻,即采集当前时刻下磁盘的磁盘读写信息。

又由于在linux操作系统下sysfs是一个基于内存的文件系统,它的作用是将内核信息以文件的方式提供给用户程序使用。即可选的,采集当前的磁盘读写信息可以包括:

通过sysfs采集当前磁盘的读请求合并数和写请求合并数。

具体的,读取/sys/block/块设备/stat文件获取磁盘当前的读写请求合并数。

S110、根据所述磁盘读写信息计算当前磁盘的读负载和写负载;

具体的,考量磁盘是否需要进行性能优化,需要知道磁盘的负载状态。磁盘的负载状态可以通过磁盘的读负载和写负载进行表征。即根据磁盘读写信息计算当前磁盘的读负载和写负载。本实施例并不对磁盘的读负载和写负载计算方式进行限定。

可选的,根据所述磁盘读写信息计算当前磁盘的读负载和写负载可以包括:

计算当前采集的读请求合并数与上一次采集的读请求合并数的读请求合并数差值,并选取当前采集的读请求合并数与上一次采集的读请求合并数中数值大的读请求合并数作为最大读请求合并数;

将所述读请求合并数差值除以所述最大读请求合并数得到当前磁盘的读负载;

计算当前采集的写请求合并数与上一次采集的写请求合并数的写请求合并数差值,并选取当前采集的写请求合并数与上一次采集的写请求合并数中数值大的写请求合并数作为最大写请求合并数;

将所述写请求合并数差值除以所述最大写请求合并数得到当前磁盘的写负载。

具体的,读/写负载=两次采集的读/写请求的合并数差值/合并数最大值。

S120、将所述读负载和所述写负载以及前预设时间内所述磁盘的工作状态,与预设优化条件进行比较,确定所述磁盘的优化级别;

具体的,本实施例中的优化级别不仅与当前磁盘的读负载和写负载有关(这里的读负载和写负载可以表征当前时刻磁盘工作状态),还与当前时刻的前预设时间内磁盘的工作状态有关;通过将当前时刻的磁盘的工作状态与前预设时间内磁盘的工作状态综合起来与预设优化条件进行比较,确定所述磁盘的优化级别。这样得到的磁盘的优化级别可以更加真实的反应磁盘在该段时间内的真实工作状态,从而使得后续进行磁盘性能优化更加可靠,准确。这里预设优化条件可以由用户根据实际情况进行确定。例如若当前为空闲状态,且前预设时间内磁盘的工作状态也为空闲时,可以将磁盘当前的优化级别降低,或者将当前磁盘的优化级别设置为低(即磁盘的性能可以低于仅当前时刻磁盘的工作状态为空闲时对应的优化级别)。若当前为繁忙状态,且前预设时间内磁盘的工作状态也为繁忙时,可以将磁盘当前的优化级别升高,或者将当前磁盘的优化级别设置为高(即磁盘的性能可以高于仅当前时刻磁盘的工作状态为繁忙时对应的优化级别)。

即可选的,将所述读负载和所述写负载以及前预设时间内所述磁盘的工作状态,与预设优化条件进行比较,确定所述磁盘的优化级别可以包括:

根据当前磁盘的所述读负载和所述写负载确定当前磁盘的工作状态;

判断前预设时间内所述磁盘的工作状态是否与当前磁盘的工作状态一致;

若是,则将所述磁盘对应的优化级别增加一级作为所述磁盘的优化级别;

若否,则将所述磁盘对应的优化级别降低一级作为所述磁盘的优化级别。

具体的,这里当工作状态为繁忙时,若是,则将磁盘对应的优化级别增加一级作为所述磁盘的优化级别,意味着磁盘一直都很繁忙,将优化级别提高,增强磁盘性能;(即提高增强磁盘性能的优化级别)。这里当工作状态为空闲时,若是,则将磁盘对应的优化级别增加一级作为所述磁盘的优化级别,意味着磁盘一直都很空闲,将优化级别提高,降低磁盘性能;(即提高增降低盘性能的优化级别)。

即这里的增加一级和降低一级都是对应此时工作状态的。繁忙时增加一级对应的优化级别意味着更强的增强磁盘性能;空闲时增加一级对应的优化级别意味着更强的降低磁盘性能;繁忙时降低一级对应的优化级别意味着减弱一级增强磁盘性能的力度(即在一定程度上降低磁盘性能);空闲时降低一级对应的优化级别意味着减弱一级降低磁盘性能的力度(即在一定程度上提高磁盘性能)。

本实施例中并不限定根据当前磁盘的读负载和写负载确定当前磁盘的工作状态的方式。例如可以通过设定对应阈值进行比较,并设定对应的比较结果表示的磁盘的工作状态。例如当磁盘的读/写负载有一个小于指定的阀值时(这里的阈值可以是两个即写负载对应的写负载阈值和读负载对应的读负载阈值;这里的阈值也可以是一个即写负载和读负载对应一个阈值),则认为磁盘的负载较低。当磁盘的读/写负载均小于指定的阀值时,则认为磁盘的负载较低。

本实施例中前预设时间内可以利用采集次数表示,因为每采集一次磁盘读写信息都可以得到当时的磁盘工作状态,因此可以采集次数表示前预设时间(例如当前的前6次对应的磁盘工作状态)。也可以就利用预设时间进行表示(例如1分钟内)。本实施例对比并不进行限定。

通过举例说明上述磁盘吞吐量分析过程:

分析采集的当前磁盘读写信息,分别计算磁盘当前的读写负载,当磁盘的读负载或写负载有一个小于指定的阀值时,则认为磁盘的负载较低,如果连续一段时间磁盘负载较低则将优化级别提升一级,并根据该级别进行磁盘设置,使磁盘性能进行一定的降低,从而节约系统资源,当磁盘的读、写负载都大于指定的阀值时则认为磁盘负载较大,则将优化级别减小一级,并根据该级别进行磁盘设置,使磁盘性能达到最优状态,更快的完成相关处理。

或者当读写负载都小于0.01时,标记磁盘为空闲状态;当磁盘连续6次都为空闲状态时认为磁盘性能需要降低,并将优化级别增加一级,否则认为磁盘性能需要提升,将优化级别降低一级。

S130、根据所述优化级别对应的优化参数,调用优化程序对所述磁盘进行性能优化。

具体的,为每一个优化级别设置一组相对应的优化参数,根据优化参数,调用优化程序对磁盘进行性能优化。这里并不限定具体的优化参数的内容,例如可以是驱动时间,省电模块等。

优选的,根据所述优化级别对应的优化参数,调用优化程序对所述磁盘进行性能优化可以包括:

根据所述优化级别确定对应的驱动时间参数和磁盘省电模式参数;

利用所述驱动时间参数,调用驱动程序控制所述磁盘的驱动时间;

利用所述磁盘省电模式参数,调用能控程序控制所述磁盘的省电模式。

具体的,如果磁盘性能需要降低,根据设置的优化级别,减少驱动超时时间,从而降低磁盘的功耗,设置磁盘省电模式,使磁盘尽量的省电;如果磁盘性能需要提升,则根据设置的优化级来增加驱动超时时间,提升磁盘性能,设置磁盘省电模式,使磁盘减少省电提升磁盘性能。

下面通过运行场景优化过程说明上述步骤:

首先,如果磁盘性能需要降低,则根据设置的优化级别获取优化参数,使用hdparam-S[参数](即驱动时间参数)来减少驱动超时时间,从而降低磁盘的功耗,使用hdparam-B[参数](即磁盘省电模式参数)设置磁盘省电模式,使磁盘尽量的省电;

其次,如果磁盘性能需要提升,则根据设置的优化级别获取优化参数,使用hdparam-S[参数]来增加驱动超时时间,提升磁盘性能,使用hdparam-B[参数]设置磁盘省电模式,使磁盘减少省电提升磁盘性能。尽快的进行数据的读写处理。

即在用户态对磁盘读写信息进行统计,分析并确定相对应的策略,最终在用户态对磁盘进行性能优化。

基于上述技术方案,本发明实施例提供的基于linux操作系统的磁盘性能优化方法,能够实现磁盘的自动优化,能够根据磁盘的读写情况,自动判断磁盘设置是否需要调整,并匹配相应的优化策略进行磁盘性能的优化。首先该方案会通过sysfs获取到磁盘的读写情况,然后分析收集到的信息,根据磁盘的读写情况判断当前的系统是否需要进行磁盘性能优化,并匹配对应的优化策略进行优化。

基于上述实施例,本实施例中根据当前磁盘的所述读负载和所述写负载确定当前磁盘的工作状态可以包括:

将所述读负载和所述写负载分别于对应的读负载阈值和写负载阈值进行比较,判断所述读负载和所述写负载是否均大于对应的所述读负载阈值和所述写负载阈值;

若是,则当前磁盘的工作状态为繁忙状态;

若否,则当前磁盘的工作状态为空闲状态。

具体的,本实施例并不对读负载阈值和写负载阈值进行限定,可以有用户进行确定。例如,当读负载和写负载都大于0.01时,标记磁盘为繁忙状态。

本实施例可以将前预设时间利用得到预定次数磁盘的工作状态对应的时间来表示,例如得到前6次磁盘的工作状态需要花费的时间作为前预设时间。即可选的,判断前预设时间内所述磁盘的工作状态是否与当前磁盘的工作状态一致可以包括:

判断前预设时间内所述磁盘的工作状态是否连续预定次数均与当前磁盘的工作状态一致。

例如前6次磁盘的工作状态是否均与当前磁盘的工作状态一致。

基于上述技术方案,本发明实施例提的基于linux操作系统的磁盘性能优化方法,相比于通用性的linux系统,针对于不同的磁盘读写负载,进行针对性的优化,不仅可以提高系统性能还可以节约系统资源,并且磁盘读写负载是动态变化的,现有技术中如果想进行磁盘性能优化需要进行人工判断并在用户态进行手动设置,而该方法则自动根据磁盘读写情况的变化进行动态的优化,相比于人工判断后进行手动优化,该方法完全无需人工干预,大大提升了优化效率。

下面对本发明实施例提供的基于linux操作系统的磁盘性能优化系统进行介绍,下文描述的基于linux操作系统的磁盘性能优化系统与上文描述的基于linux操作系统的磁盘性能优化方法可相互对应参照。

请参考图2,图2为本发明实施例所提供的基于linux操作系统的磁盘性能优化系统的结构框图;该系统可以包括:

采集模块100,用于采集当前的磁盘读写信息;

负载计算模块200,用于根据所述磁盘读写信息计算当前磁盘的读负载和写负载;

优化级别确定模块300,用于将所述读负载和所述写负载以及前预设时间内所述磁盘的工作状态,与预设优化条件进行比较,确定所述磁盘的优化级别;

性能优化模块400,用于根据所述优化级别对应的优化参数,调用优化程序对所述磁盘进行性能优化。

基于上述实施例,所述优化级别确定模块300包括:

当前工作状态确定单元,用于根据当前磁盘的所述读负载和所述写负载确定当前磁盘的工作状态;

判断单元,用于判断前预设时间内所述磁盘的工作状态是否与当前磁盘的工作状态一致;

优化级别确定单元,用于若一致,则将所述磁盘对应的优化级别增加一级作为所述磁盘的优化级别;若不一致,则将所述磁盘对应的优化级别降低一级作为所述磁盘的优化级别。

基于上述实施例,所述性能优化模块400包括:

参数确定单元,用于根据所述优化级别确定对应的驱动时间参数和磁盘省电模式参数;

性能优化单元,用于利用所述驱动时间参数,调用驱动程序控制所述磁盘的驱动时间;利用所述磁盘省电模式参数,调用能控程序控制所述磁盘的省电模式。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的基于linux操作系统的磁盘性能优化方法及系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号