基于Prophet模型的SSD寿命预测方法、系统、终端及存储介质与流程

文档序号:20772250发布日期:2020-05-19 20:24阅读:405来源:国知局
基于Prophet模型的SSD寿命预测方法、系统、终端及存储介质与流程

本发明ssd测试技术领域,具体涉及一种基于prophet模型的ssd寿命预测方法、系统、终端及存储介质。



背景技术:

ssd的闪存芯片有寿命限制,其寿命即它的p/ecycle次数。举例来说,浪潮自研ssd所使用的东芝bics3系列闪存芯片所允许的p/ecycle次数为10000次。当用户负载带来的ssdp/ecycle次数超过10000次后,ssd的寿命超出厂商的质保期限,ssd的可靠性和性能不再得到保证。

现有ssd寿命预测技术非常简单,所得到的ssd寿命预测结果不精确。当前ssd厂商比如intel、hp、hpe在计算ssd寿命时,都是基于一段时间内的磨损度变化(smart_233表示的整数百分比值)求平均值。具体原理为:

现有技术存在的问题有:1.计算方法简单粗暴,只有在用户负载不变的情况下,计算才比较准确,但是用户负载正常情况下无时无刻不在发生改变。2.使用磨损度作为参数。磨损度为0-100%的整数磨损百分比,几十天才会发生1%的变化,因此计算得到的剩余寿命误差比较大。

ssd厂商一般不对外提供使用过程中发生的p/ecycle次数,但浪潮自研ssd可获取该参数。芯片内部对该值的计算为:ssd所有blockp/ecycle次数的平均值。磨损度与p/ecycle的次数的关系为:磨损度=ssd已产生pecycle/额定最大pecycle次数,并对计算结果取整。磨损度表示的百分比为整数百分比,相比于原始p/ecycle值,精确度差很多。



技术实现要素:

针对现有技术的上述不足,本发明提供一种基于prophet模型的ssd寿命预测方法、系统、终端及存储介质,以解决上述技术问题。

第一方面,本发明提供一种基于prophet模型的ssd寿命预测方法,包括:

根据预设采集周期循环采集ssd的擦写次数并标记时间戳;

根据擦写次数采集数据的时间戳生成擦写次数采集数据时间序列,并将所述擦写次数采集数据时间序列作为历史数据集;

利用所述历史数据集训练prophet模型;

利用所述prophet模型预测所述ssd达到额定擦写次数所需时间,将所需时间作为所述ssd寿命输出。

进一步的,所述根据预设采集周期循环采集ssd的擦写次数并标记时间戳,包括:

设置采集周期为1天;

每天在固定时间点ssd内部接口获取所述ssd的当前擦写次数。

进一步的,所述方法还包括:

设置数据采集时间范围;

采集所述时间范围内的擦写次数采集数据;

利用所述时间范围内的擦写次数采集数据创建测试数据集。

进一步的,所述利用历史数据集训练prophet模型,包括:

从历史数据集划分出训练集,所述训练集的擦写次数为ssd额定擦写次数的40%-50%;

设置prophet模型的模型参数,所述模型参数包括趋势项变点参数、周期项参数和节假日项参数;

根据所述模型参数和训练集创建模型y(t)=g(t)+s(t)+h(t)+εt,其中g(t)表示主机擦写次数整体变化趋,周期项s(t)用于表达主机写入的周期性变化,节假日项h(t)用于表达非规律性的节假日效应,误差项εt用来反映未在模型中体现的异常变动;

判断擦写次数变化趋势是否为饱和增长趋势:

若是,则所述趋势项采用分段逻辑回归函数;

若否,则所述趋势项采用分段线性回归函数。

进一步的,所述方法还包括:

从所述历史数据集划分出测试集;

选取多个测试集训练出的多个prophet模型;

将所述测试集输入多个prophet模型,得到多个预测结果;

分别计算所述多个预测结果与测试集实际结果的差值,将所述差值为prophet模型绝对误差;

选取所述绝对误差最小的prophet模型作为最优模型输出。

进一步的,所述方法还包括:

计算所述ssd寿命与所述ssd当前使用时间的差值,将所述差值作为ssd剩余寿命输出。

第二方面,本发明提供一种基于prophet模型的ssd寿命预测系统,包括:

数据采集单元,配置用于根据预设采集周期循环采集ssd的擦写次数并标记时间戳;

序列生成单元,配置用于根据擦写次数采集数据的时间戳生成擦写次数采集数据时间序列,并将所述擦写次数采集数据时间序列作为历史数据集;

模型训练单元,配置用于利用所述历史数据集训练prophet模型;

寿命预测单元,配置用于利用所述prophet模型预测所述ssd达到额定擦写次数所需时间,将所需时间作为所述ssd寿命输出。

进一步的,所述模型训练单元包括:

训练划分模块,配置用于从历史数据集划分出训练集,所述训练集的擦写次数为ssd额定擦写次数的40%-50%;

参数设置模块,配置用于设置prophet模型的模型参数,所述模型参数包括趋势项变点参数、周期项参数和节假日项参数;

模型创建模块,配置用于根据所述模型参数和训练集创建模型y(t)=g(t)+s(t)+h(t)+εt,其中g(t)表示主机擦写次数整体变化趋,周期项s(t)用于表达主机写入的周期性变化,节假日项h(t)用于表达非规律性的节假日效应,误差项εt用来反映未在模型中体现的异常变动;

趋势判断模块,配置用于判断擦写次数变化趋势是否为饱和增长趋势:

第一函数模块,配置用于若擦写次数变化趋势为饱和增长趋势,则所述趋势项采用分段逻辑回归函数;

第二函数模块,配置用于若擦写次数变化趋势不是饱和增长趋势,则所述趋势项采用分段线性回归函数。

第三方面,提供一种终端,包括:

处理器、存储器,其中,

该存储器用于存储计算机程序,

该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法。

第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

本发明的有益效果在于,

本发明提供的基于prophet模型的ssd寿命预测方法、系统、终端及存储介质,使用时间序列prophet模型依据擦写次数随时间的变化序列来估算ssd寿命。通过prophet模型学习用户擦写次数的趋势性、周期性及节假日效应,预测主机写入量达到ssd闪存芯片额定擦写次数的时间节点,即为ssd寿命终点。本发明能够准确预测ssd寿命,和现有的公式计算方法相比,能够捕捉用户写入量的趋势项、周期项、节假日效应等,大幅提高ssd寿命预测的准确性。

此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。

附图说明

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

图1是本发明一个实施例的方法的示意性流程图。

图2是本发明一个实施例的方法的示意性流程图。

图3是本发明一个实施例的系统的示意性框图。

图4为本发明实施例提供的一种终端的结构示意图。

具体实施方式

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

下面对本发明中出现的关键术语进行解释。

p/ecycle固态存储的擦除周期是指从写入数据到固态nand闪存,然后在写入新的数据前擦除所经过的时间。

p/ecycle次数指数据擦写次数。

图1是本发明一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种基于prophet模型的ssd寿命预测系统。

如图1所示,该方法100包括:

步骤110,根据预设采集周期循环采集ssd的擦写次数并标记时间戳;

步骤120,根据擦写次数采集数据的时间戳生成擦写次数采集数据时间序列,并将所述擦写次数采集数据时间序列作为历史数据集;

步骤130,利用所述历史数据集训练prophet模型;

步骤140,利用所述prophet模型预测所述ssd达到额定擦写次数所需时间,将所需时间作为所述ssd寿命输出。

为了便于对本发明的理解,下面以本发明基于prophet模型的ssd寿命预测方法的原理,结合实施例中对ssd寿命进行预测的过程,对本发明提供的基于prophet模型的ssd寿命预测方法做进一步的描述。

请参考图2,具体的,所述基于prophet模型的ssd寿命预测方法包括:

s1、根据预设采集周期循环采集ssd的擦写次数并标记时间戳。

每天固定时间调用自研ssd内部接口,获取ssd当前p/ecycle的次数。将每日p/ecycle次数和当日时间戳作为时间序列记录在文件中。

s2、根据擦写次数采集数据的时间戳生成擦写次数采集数据时间序列,并将所述擦写次数采集数据时间序列作为历史数据集。

设置数据采集范围,本实施例设置为180天,当时间序列累计记录量达到180天后,利用累计的时间序列生成历史数据集。

s3、利用所述历史数据集训练prophet模型。

设置训练集的总擦写次数为ssd额定擦写次数的40%-50%。本实施例选取150天数据作为训练集,30天数据作为测试集。将训练集的数据代入prophet模型进行训练。依据训练集p/ecycle的变化特征选择趋势项使用分段线性函数还是逻辑回归函数。如果ssdp/ecycle变化呈现饱和增长趋势,选择逻辑回归函数,否则使用线性回归函数。设定趋势项的变点参数,包括:变点个数、变点的分布区间以及变点的影响强度。设定周期项参数。包括周期长度(周/年)、周期项强度以及乘法周期项还是加法周期项。设定节假日项参数。包括节假日日期、节假日项的强度。

prophet模型的构成如下:

y(t)=g(t)+s(t)+h(t)+εt

其中g(t)表示主机擦写次数整体变化趋,周期项s(t)用于表达主机写入的周期性变化,节假日项h(t)用于表达非规律性的节假日效应,误差项εt用来反映未在模型中体现的异常变动。

此外,针对趋势项g(t)增长模型的选取,本实施例中选取逻辑回归函数,具体为:

其中,c是饱和值(承载能力)取值,k是增长率,m是偏置参数。

但是在本实施例中,由于用户处理某新项目导致的需求变化,增长率k是变化的。

因此本实施例在时间序列中根据用户实际业务情况设置n个转变点s,在这些转变点增长率会发生变化,变化量用δn表示在时间tn处的变化量,构建出向量a(n)∈{0,1}n

进而得到增长率在t时间的表达式:k+a(tt

当增长率发生变化时,偏置参数m也要进行调整修正。偏置参数在转折点n处的调整量为:

由此可以得到分段逻辑回归函数:

本实施例中的分段线性回归函数为:

g(t)=(k+a(t)tδ)t+(m+a(t)tγ)

周期项s(t)依靠傅里叶级数来构造,具体构造方法为现有技术,非本发明保护范围,因此不做详细介绍。

设置节假日列表,在列表中存储节假日名称和时间。将节假日列表融入模型中,对于每个节假日,设置为过去和未来节假日的集合。添加一个指示函数来辨别时间t是否在节假日集合中,并对每个节假日设定一个误差参数,来对应出预测中的变化。生成一个回归元矩阵,该矩阵即为节假日项h(t)。

利用训练集对上述prophet模型进行训练,设置3个训练集,可以训练出3个prophet模型。将测试集依次输入3个prophet模型,分别得到三个预测结果,根据测试数据集和当前参数下的预测结果,分别计算三个prophet模型的平均绝对误差mae。选取绝对误差mae最小的prophet模型作为最优模型输出。

s4、利用所述prophet模型预测所述ssd达到额定擦写次数所需时间,将所需时间作为所述ssd寿命输出。

由最优模型得到ssd的擦写次数达到额定擦写次数n的时间节点,该时间节点即为ssd寿命,计算该时间节点与当前日期的差值,即为ssd剩余寿命。

如图3示,该系统300包括:

数据采集单元310,配置用于根据预设采集周期循环采集ssd的擦写次数并标记时间戳;

序列生成单元320,配置用于根据擦写次数采集数据的时间戳生成擦写次数采集数据时间序列,并将所述擦写次数采集数据时间序列作为历史数据集;

模型训练单元330,配置用于利用所述历史数据集训练prophet模型;

寿命预测单元340,配置用于利用所述prophet模型预测所述ssd达到额定擦写次数所需时间,将所需时间作为所述ssd寿命输出。

可选地,作为本发明一个实施例,所述模型训练单元包括:

训练划分模块,配置用于从历史数据集划分出训练集,所述训练集的擦写次数为ssd额定擦写次数的40%-50%;

参数设置模块,配置用于设置prophet模型的模型参数,所述模型参数包括趋势项变点参数、周期项参数和节假日项参数;

模型创建模块,配置用于根据所述模型参数和训练集创建模型y(t)=g(t)+s(t)+h(t)+εt,其中g(t)表示主机擦写次数整体变化趋,周期项s(t)用于表达主机写入的周期性变化,节假日项h(t)用于表达非规律性的节假日效应,误差项εt用来反映未在模型中体现的异常变动;

趋势判断模块,配置用于判断擦写次数变化趋势是否为饱和增长趋势:

第一函数模块,配置用于若擦写次数变化趋势为饱和增长趋势,则所述趋势项采用分段逻辑回归函数;

第二函数模块,配置用于若擦写次数变化趋势不是饱和增长趋势,则所述趋势项采用分段线性回归函数。

图4为本发明实施例提供的一种终端系统400的结构示意图,该终端系统400可以用于执行本发明实施例提供的基于prophet模型的ssd寿命预测方法。

其中,该终端系统400可以包括:处理器410、存储器420及通信单元430。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

其中,该存储器420可以用于存储处理器410的执行指令,存储器420可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。当存储器420中的执行指令由处理器410执行时,使得终端400能够执行以下上述方法实施例中的部分或全部步骤。

处理器410为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器420内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(integratedcircuit,简称ic)组成,例如可以由单颗封装的ic所组成,也可以由连接多颗相同功能或不同功能的封装ic而组成。举例来说,处理器410可以仅包括中央处理器(centralprocessingunit,简称cpu)。在本发明实施方式中,cpu可以是单运算核心,也可以包括多运算核心。

通信单元430,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。

本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-onlymemory,简称:rom)或随机存储记忆体(英文:randomaccessmemory,简称:ram)等。

因此,本发明使用时间序列prophet模型依据擦写次数随时间的变化序列来估算ssd寿命。通过prophet模型学习用户擦写次数的趋势性、周期性及节假日效应,预测主机写入量达到ssd闪存芯片额定擦写次数的时间节点,即为ssd寿命终点。本发明能够准确预测ssd寿命,和现有的公式计算方法相比,能够捕捉用户写入量的趋势项、周期项、节假日效应等,大幅提高ssd寿命预测的准确性,本实施例所能达到的技术效果可以参见上文中的描述,此处不再赘述。

本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。

本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1