发明内容
有鉴于此,本申请的目的在于提供一种数据处理方法、装置、设备及可读存储介质,以实现固态硬盘的有效管理,以提高固态硬盘的读写性能。其具体方案如下:
第一方面,本申请提供了一种数据处理方法,应用于固态硬盘,包括:
获取历史I/O数据;历史I/O数据为固态硬盘在预设时间段内被访问的数据;
利用预测模型对历史I/O数据进行学习,获得预测结果;预测结果包括:固态硬盘在未来窗口期内被访问的数据强度,未来窗口期根据固态硬盘被访问的周期确定;
根据预测结果管理固态硬盘。
优选地,未来窗口期的确定过程包括:
若固态硬盘仅被一个业务访问,则将固态硬盘被当前业务访问的周期确定为未来窗口期。
优选地,未来窗口期的确定过程包括:
若固态硬盘被多个业务访问,则确定固态硬盘被每个业务访问的周期;
计算所有周期的最小公倍数,并通过最小公倍数确定未来窗口期。
优选地,通过最小公倍数确定未来窗口期,包括:
将所有周期中的最大周期确定为未来窗口期的取值下限;
将最小公倍数确定为未来窗口期的取值上限;
将任一个不小于取值下限且不大于取值上限的目标值确定为未来窗口期。
优选地,还包括:
计算所有周期的最大公约数,并将最大公约数确定为预测间隔;
按照预测间隔在未来窗口期中确定多个预测点。
优选地,利用预测模型对历史I/O数据进行学习,获得预测结果,包括:
利用LSTM模型对历史I/O数据进行学习,获得预测结果。
优选地,根据预测结果管理固态硬盘,包括:
根据预测结果对固态硬盘进行缓存管理和/或垃圾回收。
第二方面,本申请提供了一种数据处理装置,应用于固态硬盘,包括:
获取模块,用于获取历史I/O数据;历史I/O数据为固态硬盘在预设时间段内被访问的数据;
预测模块,用于利用预测模型对历史I/O数据进行学习,获得预测结果;预测结果包括:固态硬盘在未来窗口期内被访问的数据强度,未来窗口期根据固态硬盘被访问的周期确定;
管理模块,用于根据预测结果管理固态硬盘。
第三方面,本申请提供了一种数据处理设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序,以实现前述公开的数据处理方法。
第四方面,本申请提供了一种可读存储介质,用于保存计算机程序,其中,计算机程序被处理器执行时实现前述公开的数据处理方法。
通过以上方案可知,本申请提供了一种数据处理方法,应用于固态硬盘,包括:获取历史I/O数据;历史I/O数据为固态硬盘在预设时间段内被访问的数据;利用预测模型对历史I/O数据进行学习,获得预测结果;预测结果包括:固态硬盘在未来窗口期内被访问的数据强度,未来窗口期根据固态硬盘被访问的周期确定;根据预测结果管理固态硬盘。
可见,该方法在获取到历史I/O数据后,利用预测模型对历史I/O数据进行学习,从而可获得预测结果;预测结果中包括:固态硬盘在未来窗口期内被访问的数据强度,该数据强度可表明固态硬盘在未来窗口期的数据读写压力;当该数据强度较大时,表明固态硬盘在未来窗口期的数据读写压力较大;当该数据强度较小时,表明固态硬盘在未来窗口期的数据读写压力较小。因此根据预测结果管理固态硬盘包括:当固态硬盘在未来窗口期的数据读写压力较大时,在未来窗口期内暂缓固态硬盘内的低优先级业务请求;当固态硬盘在未来窗口期的数据读写压力较小时,在未来窗口期内及时响应固态硬盘内的低优先级业务请求,从而可避免低优先级业务影响固态硬盘对用户读写操作的响应。其中,未来窗口期根据固态硬盘被访问的周期确定,也就是预测模型输出的预测结果与固态硬盘被访问的周期相关联,由于访问周期具有一定的规律,因此为预测结果的准确性提供了保障,从而为固态硬盘的有效管理提供了可靠的数据支持。因此本申请实现了固态硬盘的有效管理,提高了固态硬盘的读写性能,避免了用户操作响应时间的延时,从而提高了固态硬盘的服务能力。
相应地,本申请提供的一种数据处理装置、设备及可读存储介质,也同样具有上述技术效果。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,由于技术人员按照经验总结的管理策略带有更多主观意见,导致管理策略可能不够准确。当管理策略存在偏差时,固态硬盘的管理操作会与固态硬盘对外提供的服务相互影响,如此会降低固态硬盘的读写性能,延长对用户操作的响应时间,从而降低了低固态硬盘的服务能力。为此,本申请提供了一种数据处理方案,能够实现固态硬盘的有效管理,以提高固态硬盘的读写性能。
参见图1所示,本申请实施例公开了第一种数据处理方法,应用于固态硬盘,包括:
S101、获取历史I/O数据;
需要说明的是,获取数据的方式可以为:通过软件接口获取数据,或通过硬件接口从存储介质中获取,或接收数据发送端通过网络线路发送的数据等。其中,历史I/O数据为:固态硬盘在预设时间段内被访问的数据,也就是在预设时间段内某些对象对固态硬盘进行读和/或写操时涉及的数据。历史I/O数据包括:I/O类型(读或写)、时间戳、I/O大小(数据量大小)等。其中,预设时间段即产生历史I/O数据的时间段,一般情况下,预设时间段不小于未来窗口期的时间长度。如:以当前时刻为界限,预设时间段为当前时刻的前10秒,未来窗口期为当前时刻的后10秒、后8秒、后5秒或更短时间。
S102、利用预测模型对历史I/O数据进行学习,获得预测结果;
具体的,预测模型可根据历史I/O数据预测未来窗口期内某些对象对固态硬盘进行读和/或写操时涉及的数据和数据强度,因此预测结果中包括固态硬盘在未来窗口期内被访问的数据强度。未来窗口期即未来某一个时间段。未来窗口期根据固态硬盘被访问的周期确定,也就是预测模型输出的预测结果与固态硬盘被访问的周期相关联。其中,数据强度指:读I/O强度、写I/O强度或读写比例。
在一种具体实施方式中,未来窗口期的确定过程包括:若固态硬盘仅被一个业务访问,则将固态硬盘被当前业务访问的周期确定为未来窗口期。具体的,在预测模型的训练过程中,将固态硬盘被当前业务访问的周期确定为未来窗口期,那么可设置预测结果包括:当前业务对固态硬盘进行读和/或写操时涉及的数据和数据量,也就是数据强度,其中的未来窗口期为当前业务访问固态硬盘的周期。例如:当前业务访问固态硬盘的周期为每10秒访问一次,那么未来窗口期即设置为10秒,那么预测结果可以包括:当前业务在未来10秒内对固态硬盘进行读和/或写操时涉及的数据,以及数据强度。
具体的,在将当前业务访问固态硬盘的周期确定为未来窗口期后,在未来窗口期中可设置预测间隔,如:在未来窗口期中设置10个预测点,每个预测点针对读操作预测一次,针对写操作预测一次,则预测结果Y={y1,y2,…,y10,y11,…,y20},其中,{y1,y2,…,y10}为针对读操作的预测值,{y11,y12,…,y20}为针对写操作的预测值。由于当前业务是周期性地访问固态硬盘,因此理论上,预测模型可以由前一时刻的I/O数据预测未来时刻的I/O数据。实际应用过程中,预测模型的输入可选取更多I/O数据,如:一次样本输入为X={x1,x2,…,x8},X为当前业务访问固态硬盘的历史I/O数据,xi表示每一I/O数据的三元变量(时间戳、I/O类型、I/O大小)。预设时间段设置的越长,预测模型的输入也就越多。
其中,未来窗口期的起点可以为预测模型的输入数据所处时间段的终点。如:预测模型的输入数据所处时间段为第13秒到第14秒,那么未来窗口期可以为第14秒到第15秒,其中,未来窗口期的起点为第14秒开始,也就是输入数据的所处时间段的终点。
若当前业务访问固态硬盘的周期变化时,可以增加输入数据的时间总长度以及采样点数量。例如:原来预测模型的输入为:前10秒内的I/O数据,其中每5秒采集一次I/O数据;若周期发生变化,那么预测模型的输入可调整为:前20秒内的I/O数据,其中每2秒采集一次I/O数据。其中,输入数据的时间总长度(即预设时间段)可以与未来窗口期相等,这样每个采样点的I/O数据与预测点的预测值一一对应。
在一种具体实施方式中,未来窗口期的确定过程包括:若固态硬盘被多个业务访问,则确定固态硬盘被每个业务访问的周期;计算所有周期的最小公倍数,并通过最小公倍数确定未来窗口期。具体的,假设有3个业务按照各自的周期访问固态硬盘,其中,A业务访问固态硬盘的周期为10秒,B业务访问固态硬盘的周期为20秒,C业务访问固态硬盘的周期为30秒,那么所有周期的最小公倍数为60秒,因此将未来窗口期即设置为60秒,那么预测结果包括:在未来60秒内固态硬盘被进行读和/或写操时涉及的数据,以及数据强度。
需要说明的是,访问固态硬盘的业务可以属于上层应用层,具体可以属于主机端的应用,如数据库等。
在本实施例中,利用预测模型对历史I/O数据进行学习,获得预测结果,包括:利用LSTM模型对历史I/O数据进行学习,获得预测结果。预测模型的结构请参见图2。还可以设置多层结构,这样预测模型的预测能力更强。如图3所示的两层结构。图3中的每个框即为一个LSTM Cell集合。还可以据此设置更多LSTM Cell,以形成三层、四层、甚至更多层的网络结构,从而提高预测模型的预测精度。LSTM模型可以为:seq2seq。
在图2中,以前4秒某业务对固态硬盘写操作数据为模型输入,以预测该业务对固态硬盘后4秒的写操作情况。由于这里已经指定了操作类型和时间,因此输入序列不包括时间戳、I/O类型等变量。4秒即为未来窗口期,其中的预测间隔为1秒。
具体的,以当前时刻为界限,图2示例的输入输出关系为:图2中模型输入部分示例的75、100、125、100分别为前4秒、前3秒、前2秒、前1秒对应的数据强度,模型输入部分示例的V为模型输入处理得到的中间向量。图2中的模型输出部分示例的75、50、25、50分别为后1秒、后2秒、后3秒、后4秒分别对应的数据强度的预测值。图3中示例的输入输出关系与图2示例的输入输出关系类似,可参照上述说明。
其中,图2和图3中的每个框为一个LSTM Cell集合,每个LSTM Cell的结构请参见图4。在图4中,xt和ht-1为LSTM Cell的输入数据,xt为当前LSTM Cell待处理数据,ht-1是前一个LSTM Cell输出的结果,输入数据还包括前一个LSTM Cell输出的ct-1。图4中“InputGate”、“Forget Gate”、“Cell Gate”和“Output Gate”为当前LSTM Cell的四个处理门,这四个处理门分别处理xt和ht-1。“Input Gate”的处理结果it与“Cell Gate”的处理结果ct进行内积运算,获得第一个内积结果,“Forget Gate”的处理结果ft与前一个LSTM Cell输出的ct-1进行内积运算,获得第二个内积结果,进而第一个内积结果与第二个内积结果相加,获得一个新的ct,这个新的ct经过激活函数后,与“Output Gate”的处理结果ot进行内积,从而获得当前LSTM Cell输出的ht。其中,当前LSTM Cell输出的ht和ct会同时输入下一个LSTMCell。
图4中的
表示向量矩阵乘法运算,
表示相加,“⊙”表示哈达玛积(Hadamard Product),
表示激活函数。W
x为x
t在当前处理门中的权重值,W
h为h
t-1当前处理门中的权重值。例如,W
xi为x
t在“Input Gate”中的权重值,W
hi为h
t-1“Input Gate”中的权重值,其他以此类推。LSTM中的每个LSTM Cell中有四个处理门。
LSTM模型的训练过程包括:获取历史I/O数据,将历史I/O数据作为LSTM模型的训练数据,LSTM模型的未来窗口期由业务访问固态硬盘的周期确定。训练完成后,该LSTM模型便可以将该业务对固态硬盘进行读和/或写操时涉及的数据为输入,并输出相应的预测结果,且该预测结果包括:在未来窗口期内该业务对固态硬盘进行读和/或写操时涉及的数据和数据强度。
S103、根据预测结果管理固态硬盘。
在本实施例中,根据预测结果管理固态硬盘,包括:根据预测结果对固态硬盘进行缓存管理和/或垃圾回收。
可见,本申请实施例在获取到历史I/O数据后,利用预测模型对历史I/O数据进行学习,从而可获得预测结果;预测结果中包括:固态硬盘在未来窗口期内被访问的数据强度,该数据强度可表明固态硬盘在未来窗口期的数据读写压力;当该数据强度较大时,表明固态硬盘在未来窗口期的数据读写压力较大;当该数据强度较小时,表明固态硬盘在未来窗口期的数据读写压力较小。因此根据预测结果管理固态硬盘包括:当固态硬盘在未来窗口期的数据读写压力较大时,在未来窗口期内暂缓固态硬盘内的低优先级业务请求;当固态硬盘在未来窗口期的数据读写压力较小时,在未来窗口期内及时响应固态硬盘内的低优先级业务请求,从而可避免低优先级业务影响固态硬盘对用户读写操作的响应。其中,未来窗口期根据固态硬盘被访问的周期确定,也就是预测模型输出的预测结果与固态硬盘被访问的周期相关联,由于访问周期具有一定的规律,因此为预测结果的准确性提供了保障,从而为固态硬盘的有效管理提供了可靠的数据支持。因此本申请实现了固态硬盘的有效管理,提高了固态硬盘的读写性能,避免了用户操作响应时间的延时,从而提高了固态硬盘的服务能力。
请参见图5,图5公开了一种未来窗口期的确定方法,包括:
S501、若固态硬盘被多个业务访问,则确定固态硬盘被每个业务访问的周期;
S502、将所有周期中的最大周期确定为未来窗口期的取值下限;
S503、计算所有周期的最小公倍数,并将最小公倍数确定为未来窗口期的取值上限;
S504、将任一个不小于取值下限且不大于取值上限的目标值确定为未来窗口期。
需要说明的是,访问固态硬盘的多个业务可能属于同一系统,也可能属于不同系统。若这多个业务均属于目标系统,那么目标系统中的不同业务访问固态硬盘的周期长短不一,因此各个周期的最小公倍数可能会比较大,若直接将最小公倍数确定为未来窗口期,将会导致未来窗口期过长。为避免未来窗口期过长,本实施例将任一个不小于取值下限且不大于取值上限的目标值确定为未来窗口期。
例如:假设目标系统中有3个业务按照各自的周期访问固态硬盘,其中,A业务访问固态硬盘的周期为10秒,B业务访问固态硬盘的周期为20秒,C业务访问固态硬盘的周期为30秒,那么所有周期的最小公倍数为60秒,此时可在30秒~60秒之间(包括端点值)任取一个值(如30秒、40秒、45秒等),进而将此取值确定为未来窗口期。
在一种具体实施方式中,还包括:计算所有周期的最大公约数,并将最大公约数确定为预测间隔;按照预测间隔在未来窗口期中确定多个预测点;其中,预测点与预测值一一对应,预测结果包括预测值。
在上述示例的基础上,若根据A、B、C业务确定未来窗口期为60秒,则将访问周期10秒、20秒和30秒的最大公约数10秒确定为预测间隔,那么在60秒(0-60秒)的未来窗口期内,可确定6个预测点,这6个预测点与第10、20、30、40、50、60秒分别对应,那么每个预测点即可对应一个预测值,而预测结果中就可以包括6个预测值。根据这6个预测值可分别确定在相应的预测点是否适合进行固态硬盘的管理。每个预测值为预测点所处时刻的数据强度。
由上可见,本实施例根据目标系统访问固态硬盘的周期,可确定合适的未来窗口期。未来窗口期过长,预测模型的压力会比较大,预测结果也不具有可参考价值;未来窗口期过短,由于无法及时操作,导致预测结果没有太大意义。按照本实施例提供的方法,可根据目标系统对固态硬盘的实际访问情况,确定合适的未来窗口期,从而可提高预测结果的精确度,从而为现固态硬盘的有效管理,提高固态硬盘的读写性能提供可靠依据。
下面对本申请实施例提供的一种数据处理装置进行介绍,下文描述的一种数据处理装置与上文描述的一种数据处理方法可以相互参照。
参见图6所示,本申请实施例公开了一种数据处理装置,应用于固态硬盘,包括:
获取模块601,用于获取历史I/O数据;历史I/O数据为固态硬盘在预设时间段内被访问的数据;
预测模块602,用于利用预测模型对历史I/O数据进行学习,获得预测结果;预测结果包括:固态硬盘在未来窗口期内被访问的数据强度,未来窗口期根据固态硬盘被访问的周期确定;
管理模块603,用于根据预测结果管理固态硬盘。
在一种具体实施方式中,还包括:用于确定未来窗口期的确定模块,确定模块具体用于:
若固态硬盘仅被一个业务访问,则将固态硬盘被当前业务访问的周期确定为未来窗口期。
在一种具体实施方式中,确定模块包括:
第一确定单元,用于若固态硬盘被多个业务访问,则确定固态硬盘被每个业务访问的周期;
第一计算单元,用于计算所有周期的最小公倍数,并通过最小公倍数确定未来窗口期。
在一种具体实施方式中,计算单元包括:
第一确定子单元,用于将所有周期中的最大周期确定为未来窗口期的取值下限;
第二确定子单元,用于将最小公倍数确定为未来窗口期的取值上限;
第三确定子单元,用于将任一个不小于取值下限且不大于取值上限的目标值确定为未来窗口期。
在一种具体实施方式中,确定模块还包括:
第二计算单元,用于计算所有周期的最大公约数,并将最大公约数确定为预测间隔;
第二确定单元,用于按照预测间隔在未来窗口期中确定多个预测点。
在一种具体实施方式中,预测模块具体用于:
利用LSTM模型对历史I/O数据进行学习,获得预测结果。
在一种具体实施方式中,管理模块具体用于:
根据预测结果对固态硬盘进行缓存管理和/或垃圾回收。
其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本实施例提供了一种数据处理装置,该装置实现了固态硬盘的有效管理,提高了固态硬盘的读写性能,避免了用户操作响应时间的延时,从而提高了固态硬盘的服务能力。
下面对本申请实施例提供的一种数据处理设备进行介绍,下文描述的一种数据处理设备与上文描述的一种数据处理方法及装置可以相互参照。
参见图7所示,本申请实施例公开了一种数据处理设备,包括:
存储器701,用于保存计算机程序;
处理器702,用于执行所述计算机程序,以实现上述任意实施例公开的方法。
下面对本申请实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与上文描述的一种数据处理方法、装置及设备可以相互参照。
一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的数据处理方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本申请涉及的“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法或设备固有的其它步骤或单元。
需要说明的是,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的可读存储介质中。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。