固态硬盘中控制参数的获取方法、存储介质和电子装置

文档序号:923461 发布日期:2021-03-02 浏览:1次 >En<

阅读说明:本技术 固态硬盘中控制参数的获取方法、存储介质和电子装置 (Method for acquiring control parameters in solid state disk, storage medium and electronic device ) 是由 李伟 袁伟 于 2020-12-15 设计创作,主要内容包括:本申请实施例公开了一种固态硬盘中控制参数的获取方法、存储介质和电子装置。所述方法包括:获取固态硬盘的运行数据,其中所述运行数据包括不同时刻的运行状态下前端指令迟滞因子;根据所述运行数据,采用强化学习建立运行状态与前端指令迟滞因子之间的非线性模型;利用所述非线性模型确定当前运行状态下的目标前端指令迟滞因子,其中所述目标前端指令迟滞因子能够达到当前运行状态下最优的每秒的输入输出量IOPS。本申请实施例采用强化学习这一非线性算法选取前端指令迟滞因子,使得性能IOPS值趋于最大化,且性能波动趋于最小化。(The embodiment of the application discloses a method for acquiring control parameters in a solid state disk, a storage medium and an electronic device. The method comprises the following steps: acquiring operation data of the solid state disk, wherein the operation data comprises front-end instruction hysteresis factors under operation states at different moments; establishing a nonlinear model between the operation state and a front-end command hysteresis factor by adopting reinforcement learning according to the operation data; and determining a target front-end command hysteresis factor in the current operation state by using the nonlinear model, wherein the target front-end command hysteresis factor can reach the optimal input and output quantity per second IOPS in the current operation state. According to the embodiment of the application, a nonlinear algorithm of reinforcement learning is adopted to select the hysteresis factor of the front-end instruction, so that the performance IOPS value tends to be maximized, and the performance fluctuation tends to be minimized.)

固态硬盘中控制参数的获取方法、存储介质和电子装置

技术领域

本申请实施例涉及固态硬盘领域,尤指一种固态硬盘中控制参数的获取方法、存储介质和电子装置。

背景技术

随着海量数据的不断爆发,原有的主流存储介质为HDD(Hard Disk Drive,硬盘驱动器),在用户可接受的成本之下已经越来越难满足用户的性能需求,于是另外一种存储介质应运而生,那就是SSD(Solid State Disk或Solid State Drive,固态硬盘),固态硬盘根据应用市场的不同可以划分为消费级固态硬盘和企业级固态硬盘。

目前,越来越多的用户已经认识到SSD所带来的性能优势,并开始接受让SSD进入数据中心。但这一产品在企业级环境的应用并没有想象中的那么简单,每一个新事物总会遭遇到各种的难题,SSD也不例外。对于传统的HDD而言,不管是技术、工艺还是应用模式都已经非常成熟,应用相对比较简单清晰。但是SSD与HDD不同,HDD的性能是比较容易预期的,而以NAND闪存为介质的固态硬盘虽然性能更强,但由于写入速度比读取慢、写入前需先擦除等特性,可能会在闪存读取过程中产生一些不同寻常的额外延迟。在SSD的固件程序中存在非常多的判断循环结构,而这些额外的存储延迟将会影响到程序的执行效率,呈现给用户的体验就是性能的波动,对于现有的企业级SSD固件程序来说,通过平均延迟来评估运行效率或者运行效率取决于整个架构中最慢的环节,作为延迟前端指令处理的依据。

在实际应用中,相关技术受限于取样数据量的大小将会降低企业级SSD IOPS((Input/Output Per Second,每秒的输入输出量)数值,或者,不能在保证性能稳定性要求的前提下最大化的表现IOPS。

发明内容

为了解决上述任一技术问题,本申请实施例提供了一种固态硬盘中控制参数的获取方法、存储介质和电子装置。

为了达到本申请实施例目的,本申请实施例提供了一种固态硬盘中控制参数的获取方法,包括:

获取固态硬盘的运行数据,其中所述运行数据包括不同时刻的运行状态下前端指令迟滞因子;

根据所述运行数据,采用强化学习建立运行状态与前端指令迟滞因子之间的非线性模型;

利用所述非线性模型确定当前运行状态下的目标前端指令迟滞因子,其中所述目标前端指令迟滞因子能够达到当前运行状态下最优的IOPS。

一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上文所述的方法。

一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上文所述的方法。

上述技术方案中的一个技术方案具有如下优点或有益效果:

通过获取固态硬盘的运行数据,根据所述运行数据,采用强化学习建立运行状态与前端指令迟滞因子之间的非线性模型,并利用所述非线性模型确定当前运行状态下的目标前端指令迟滞因子,以便更加准确地记录运行状态与前端指令迟滞因子的对应关系,为后续准确地预测前端指令迟滞因子的数值提供数据依据;采用强化学习这一非线性算法选取前端指令迟滞因子,使得性能IOPS值趋于最大化,且性能波动趋于最小化。

本申请实施例的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例而了解。本申请实施例的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本申请实施例技术方案的进一步理解,并且构成说明书的一部分,与本申请实施例的实施例一起用于解释本申请实施例的技术方案,并不构成对本申请实施例技术方案的限制。

图1为本申请实施例提供的固态硬盘中控制参数的获取方法的流程图;

图2为本申请实施例提供的基于学习的SSD的迟滞确定方法的流程图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请实施例的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请实施例中的实施例及实施例中的特征可以相互任意组合。

图1为本申请实施例提供的固态硬盘中控制参数的获取方法的流程图。如图1所示,所述方法包括:

步骤101、获取固态硬盘的运行数据,其中所述运行数据包括不同时刻的运行状态下前端指令迟滞因子;

步骤102、根据所述运行数据,采用强化学习建立运行状态与前端指令迟滞因子之间的非线性模型;

步骤103、利用所述非线性模型确定当前运行状态下的目标前端指令迟滞因子,其中所述目标前端指令迟滞因子能够达到当前运行状态下最优的IOPS。

如果SSD中固件运行过程中发生延时,为了保证前端单个cmd的执行时间趋于平稳,就必须让前端单个cmd的执行时间慢下来,以等待固件。

相关技术中通过线性计算表达式,将固件所产生的延时时间转化为前端cmd迟滞的,例如,y=kx,其中k为延时因子,y为hysterisis值,x为延时时间。与相关技术不同的是,本申请实施例提供的方法,根据运行状态和前端指令迟滞因子建立非线性模型,以便更加准确地记录运行状态与前端指令迟滞因子的对应关系,为后续准确地预测前端指令迟滞因子的数值提供数据依据。

本申请实施例提供的方法,通过获取固态硬盘的运行数据,根据所述运行数据,采用强化学习建立运行状态与前端指令迟滞因子之间的非线性模型,并利用所述非线性模型确定当前运行状态下的目标前端指令迟滞因子,以便更加准确地记录运行状态与前端指令迟滞因子的对应关系,为后续准确地预测前端指令迟滞因子的数值提供数据依据,采用强化学习这一非线性算法选取前端指令迟滞因子,使得性能IOPS值趋于最大化,且性能波动趋于最小化。

下面对本申请实施例提供的方法进行说明:

在一个示例性实施例中,所述运行状态包括至少两组运行信息,每组运行信息均包括状态参数和动作参数,其中所述状态参数包括至少两个运行条件,其中每个运行条件均对应有一种能造成存储延迟的事件,且任意两个运行条件中的事件不同,其中所述动作参数为所述状态参数对应的前端指令迟滞因子;

所述根据所述运行数据,采用强化学习建立运行状态与前端指令迟滞因子之间的非线性模型,包括:

将每组运行信息中的事件作为输入变量,将每组运行信息中的前端指令迟滞因子作为输出变量,采用强化学习建立运行状态与前端指令迟滞因子之间的非线性模型。

与相关技术中固件的事件所造成的整体延时为输入变量不同,本申请实施例以固件内发生的事件作为输入变量,以便更加准确地记录引起存储延迟的原因,从而保证利用更加准确地事件信息执行前端指令迟滞因子的预测。

在一个示例性实施例中,所述事件包括垃圾回收事件、板载温度超过预设温度阈值的事件以及读错误造成的性能波动事件中的至少一个。

在实际应用中,根据SSD的厂商不同,造成存储延迟的事件可以不同,也可以根据实际需要进行设置、

在一个示例性实施例中,所述将每组运行信息中的事件作为输入变量,将每组运行信息中的前端指令迟滞因子作为输出变量,采用强化学习建立运行状态与前端指令迟滞因子之间的非线性模型,包括:

确定每组运行信息中每个运行条件所造成的存储延迟;

对同一组运行信息,根据所述运行信息中每个运行条件所述造成的存储延迟以及所述运行信息中动作参数中的前端指令迟滞因子,确定每个运行条件的权重;

利用每个运行条件的权重,采用强化学习建立运行状态与前端指令迟滞因子之间的非线性模型。

由于某一时刻会有至少两个事件均造成存储延迟的发生,首先确定单个事件所造成的延迟时间,再综合每个事件所造成的的延迟时间,结合该运行信息下前端指令迟滞因子的数值,确定各个事件对造成上述前端指令迟滞因子的影响程度,以便更加准确地各个事件对存储延迟的重要性。

在一个示例性实施例中,所述方法还包括:

在确定每个运行条件的权重后,对运行条件对应的事件进行选取,选择权重大于预设权重阈值的事件用以表示运行状态。

基于得到的权重的大小,保留权重大的事件作为后续训练的状态条件,以便提高后续训练操作的训练效率。

在一个示例性实施例中,所述非线性模型是通过如下方式得到的,包括:

利用所述至少两个运行信息建立强化学习模型;

采用Q-Learning算法对强化学习模型进行迭代循环,得到训练结果;

根据所述训练结果对所述强化学习模型进行调整,得到所述非线性模型。

在上述示例性实施例中,本申请实施例提供一种基于学习的SSD的Hysteresis(迟滞)方案,可以预先创建强化学习模型,确定该强化学习模型的动作集、状态集以及奖励值,并采用Q-Learning算法对强化学习模型进行计算,利用Q-Learning算法中的超参数,对强化学习模型进行迭代循环,再根据训练结果对强化学习模型进行调整,应用调整后的强化学习模型进行Hysteresis决策。

通过机器学习的方式准确的预测未来的延迟参数,预测未来的延迟规律,频率等,用以克服已有技术方案受限于取样数据量的大小将会降低企业级SSD IOPS数值,或者不能在保证性能稳定性要求的前提下,最大化的表现IOPS的问题,其中IOPS表示单位时间内数据吞吐量。

在上述示例性实施例中,Hysteresis的值的选取定义为强化学习中的动作a,动作值的确定可以理解为每一种输入状态所造成的延时时间经过延时因子算得hysterisis时间;

给SSD性能造成延迟的因素主要包括:

垃圾回收;由于空闲块殆尽造成的性能下降;

极端情况,例如,板载温度过高引发的性能降低和read error的产生造成的性能波动。

因此,状态输入变量包括:当前时刻的温度t,当前时刻的读出错造成的延时e(读error的次数会被固件当作日志存储在闪存,再由固件设定的延时因子转化为延时单元),当前data gc(垃圾回收)所造成的延时g。

图2为本申请实施例提供的基于学习的SSD的迟滞确定方法的流程图。如图2所示,所述方法包括:

步骤201、构建强化学习模型,并确定强化学习模型的动作集、状态集以及奖励值;

动作a∈A={Hysteresis0,Hysteresis1,Hysteresis2,…},其中A是动作集合;

状态s∈S={t1,e1,g1,t2,e2,g2,…},其中S是状态集合;

需要计算出单次各种延迟条件造成的延迟大小,随后综合延迟时间和依据每个延迟时间计算出的IOPS的大小,作为强化学习的奖励,将多目问题转化为单目问题,并调整参数完成最优化值的求解。

步骤202、根据状态输入变量和动作输出变量确定奖励值;

所述强化学习模型的奖励R是通过如下方式得到,包括:

R=r0–ζeE–δζdD,

其中,E为各个运行条件所造成的延迟,D为上一时刻与此时刻IOPS差值,ζe表示延迟参数的权重,ζd表示IOPS的权重,δ用于将延迟参数与IOPS映射到相同数量级的范围;

其中,r0为一个正数其取值范围满足如下条件:

max(ζeE+δζdD)<r0<2*max(ζeE+δζdD)。

由于各家芯片设计商的固件策略不同,所需要带入的延时参数的种类也不近相同,这里需要做的就是将不同的延时参数和对应的IOPS数值代入奖励函数计算,使得奖励趋于最优化。

步骤203、更新动作选择策略;

前后时刻IOPS差值越小,性能越稳定。

动作选择策略是确定所述状态下的动作,通过构建成一张Q-table来存储每一次的Q值,目的是选出能获取最大受益的动作,实现对前端指令迟滞因子的选取。

将每一组状态值代入计算奖励值,并更新值函数Q(s,a);

采用Q-Learning算法中的状态-动作的值对函数Q(s,a)进行更新,更新过程包括:

Qt+1(s,a)=(1-α)Qt(s,a)+α[Rt+γmaxQt(s!,b)],

其中,s表示当前状态,a是状态s下的动作,s!表示状态转移后的状态,b表示状态s!下的动作,Qt和Qt+1分别表示更新前和更新后的的Q值,α表示强化学习模型的学习速率,Rt表示当前迭代得到的R,γ是一个折扣因子,表示未来奖励的重要程度,取值小于1。

步骤204、基于更新后的动作选择策略计算新的奖励值,并更新Q值;

步骤205、判断是否达到最大迭代次数;

如果未达到设定的最大迭代次数后,则继续执行步骤203至205;

如果达到设定的最大迭代次数,则执行步骤206。

步骤206、判断强化学习模型是否收敛;

如果强化学习模型未收敛,则调整学习速率,重新进行迭代计算;

如果强化学习模型收敛,则流程结束。

本申请实施例提供的方法,通过强化学习的方法,在SSD使用过程中构建强化学习模型,并可实现不断地优化,从而可以实现企业级SSD的存储性能一致性的动态优化;将每次算得的延时参数和IOPS都纳入强化学习的目标中,使系统在保证性能稳定的同时趋于性能最优化,解决企业级SSD因为延迟而导致的性能波动问题;另外,还可以自动的完成延时参数的选取,自适应性强。。

本申请实施例提供一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上文任一项中所述的方法。

本申请实施例提供一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上文任一项中所述的方法。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

11页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:隐式目录状态更新

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类