发明内容
有鉴于此,本发明实施例的目的在于提出一种服务器健康状况预测的方法、装置、设备及可读介质,通过使用本发明的技术方案,能够准确的对服务器健康状况进行预测,能够降低服务器的故障风险,提高服务器运维的效率。
基于上述目的,本发明的实施例的一个方面提供了一种服务器健康状况预测的方法,包括以下步骤:
监控服务器的运行状态,并对服务器运行时的状态信息进行采集;
将采集到的状态信息分为状态数据和评估数据,并进行预处理以将不同类型的数据转置成数值;
将状态数据构建成二维状态向量,并将评估数据构建成一维评分向量;
构建DQN算法模型,并将二维状态向量和一维评分向量输入到DQN算法模型中以对DQN算法模型进行训练,并基于训练后的模型对服务器健康状况进行预测。
根据本发明的一个实施例,监控服务器的运行状态,并对服务器运行时的状态信息进行采集包括:
定时采集,定时采集为根据采集频率,每间隔一段时间采集一次状态信息;
实时反应采集,实时反应采集为给每一个需要监控的模块设定一个监视器,并为每个监视器设定触发阈值,响应于模块的状态变化超出了触发阈值,则采集状态信息。
根据本发明的一个实施例,状态信息包括CPU占用率、硬盘转速、主板电压、内存占用率、环境温度、CPU频率、内存吞吐量、硬盘读写速度、网络传输速率和各个硬件的温度。
根据本发明的一个实施例,将采集到的状态信息分为状态数据和评估数据包括:
将CPU占用率、硬盘转速、主板电压、内存占用率、环境温度划分为状态数据;
将CPU频率、内存吞吐量、硬盘读写速度、网络传输速率和各个硬件的温度划分为评估数据。
根据本发明的一个实施例,将状态信息进行预处理以将不同类型的数据转置成数值包括:
根据状态信息的数据获取该状态信息对应的值区间;
根据状态信息的数值和对应的值区间的最小值和最大值将状态信息的数值转换为0-1区间内的数值。
根据本发明的一个实施例,将评估数据构建成一维评分向量包括:
将评估数据按照速率越高性能越强和温度越高健康状况越差的规则来为服务器当前的健康状况评分;
将每条状态数据和对应的评分组成一维向量以得到一维评分向量。
根据本发明的一个实施例,构建DQN算法模型包括:
建立预测神经网络和目标神经网络,预测神经网络和目标神经网络结构相同,预测神经网络每次训练更新一次参数,目标神经网络每经过预设次数训练更新一次参数;
每经过一次训练计算预测神经网络和目标神经网络之间的误差值,并根据误差值调整训练梯度,并更新预测神经网络的参数。
本发明的实施例的另一个方面,还提供了一种服务器健康状况预测的装置,装置包括:
采集模块,采集模块配置为监控服务器的运行状态,并对服务器运行时的状态信息进行采集;
转置模块,转置模块配置为将采集到的状态信息分为状态数据和评估数据,并进行预处理以将不同类型的数据转置成数值;
构建模块,构建模块配置为将状态数据构建成二维状态向量,并将评估数据构建成一维评分向量;
训练模块,训练模块配置为构建DQN算法模型,并将二维状态向量和一维评分向量输入到DQN算法模型中以对DQN算法模型进行训练,并基于训练后的模型对服务器健康状况进行预测。
本发明的实施例的另一个方面,还提供了一种计算机设备,该计算机设备包括:
至少一个处理器;以及
存储器,存储器存储有可在处理器上运行的计算机指令,指令由处理器执行时实现上述任意一项方法的步骤。
本发明的实施例的另一个方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述任意一项方法的步骤。
本发明具有以下有益技术效果:本发明实施例提供的服务器健康状况预测的方法,通过监控服务器的运行状态,并对服务器运行时的状态信息进行采集;将采集到的状态信息分为状态数据和评估数据,并进行预处理以将不同类型的数据转置成数值;将状态数据构建成二维状态向量,并将评估数据构建成一维评分向量;构建DQN算法模型,并将二维状态向量和一维评分向量输入到DQN算法模型中以对DQN算法模型进行训练,并基于训练后的模型对服务器健康状况进行预测的技术方案,能够准确的对服务器健康状况进行预测,能够降低服务器的故障风险,提高服务器运维的效率。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
基于上述目的,本发明的实施例的第一个方面,提出了一种服务器健康状况预测的方法的一个实施例。图1示出的是该方法的示意性流程图。
如图1中所示,该方法可以包括以下步骤:
S1监控服务器的运行状态,并对服务器运行时的状态信息进行采集。
为了确保采集到的信息具有一定的数据量和较高的有效性,设计了两种信息采集的方式,包括定时采集和实时反映采集,定时采集是通过设置固定的采集频率,每间隔一段时间(例如15分钟、半个小时)采集一次数据,稳定的采集服务器在一个较长时间周期中状态信息的变化,实时反应采集则是要为每一个需要监控的模块设定一个监视器,并为每个监视器设定一个触发阈值,当短时间内某个模块的状态变化超出了其监视器的阈值就会触发实时反应采集,在接下来的一段时间内将提高采集的频率(例如在半个小时内每5分钟采集一次)。
S2将采集到的状态信息分为状态数据和评估数据,并进行预处理以将不同类型的数据转置成数值。
因为服务器有很多的状态参数,如环境温度、CPU占用率、内存频率、硬盘传输速率、风扇转速以及电源功率等等,直接采集到的这些数据的数据类型、单位以及值的区间都是不同的。比如CPU温度、内存频率、硬盘占用率这三者,它们的单位分别是℃、MHz和%,值区间大致为[20℃,90℃]、[2400MHz,4300MHz]、[0,100%],这些数据是算法模型无法处理的,所以需将这些状态值都转置到[0,1]这个区间中。同时,为了实现服务器健康状况预测这个目的,将从服务器采集到的状态信息分为状态数据和评估数据两类,状态数据并不直接与服务器性能关联,但会影响到评估数据,而评估数据则是直接反应服务器的性能,基于评估数据,根据一定的规则可以对服务器健康状况进行评分。比如,CPU占用率、硬盘转速、主板电压、内存占用率、环境温度等可以作为状态数据,CPU频率、内存吞吐量、硬盘读写速度、网络传输速率以及各个硬件的温度等可以作为评估数据。
S3将状态数据构建成二维状态向量,并将评估数据构建成一维评分向量。
将状态数据单位和值区间统一到[0,1]后,比如内存频率为3200MHz,其值区间为[2400MHz,4300MHz],则内存频率值可以转置为≈0.4211,每一条状态数据转置后为一个一维状态向量,所有的状态数据组成的二维向量就是服务器的状态变化数据。然后将评估数据按照“速率越高,性能越强”、“温度越高,健康状况越差”的规则来为服务器当前的健康状况评分,于是每条状态数据都有一个对应的评分组成了一个一维向量就是服务器的健康状况变化数据。将二维状态向量和一维评分向量作为DQN算法模型的输入,提供给深度强化学习模块。
S4构建DQN算法模型,并将二维状态向量和一维评分向量输入到DQN算法模型中以对DQN算法模型进行训练,并基于训练后的模型对服务器健康状况进行预测。
通过数值向量来训练DQN算法模型,得到的模型结果用于预测服务器健康状况,DQN算法的核心思想是将state(状态)和action(动作)作为神经网络的输入,然后经过分析后得到action的Q值(收益),只输入state,输出所有的action,然后根据强化学习的原则,直接选择拥有最正向Q值的action作为下一步要做的动作。因此可以通过服务器状态在未来变化的趋势来计算这种action的Q值,以此来预测服务器未来健康状况的变化,也可以推算出可能得到服务器健康状况最优正向变化的action,并据此来主动引导服务器状态的变化方向。DQN算法的主要原理是建立两个结构完全相同但是参数不同的神经网络,其中一个为eval_net(预测)神经网络,每次训练都会主动更新参数,另一个为target_net(目标)神经网络,并不主动更新参数,每经过N次训练才会更新一次参数。DQN算法每次训练都会计算预测神经网络和目标神经网络之间的Q值差,即误差,根据误差调整训练梯度,并更新eval_net的参数,target_net每N次训练更新的参数即是eval_net当前的参数。本发明使用的是Dueling DQN算法,其通过更改神经网络结构来优化Q值的计算方式,在Dueling DQN中,Q值的计算是通过state的value值(价值函数)和每个action的advanatge(优势函数)值组合得到,value值是该state下所有动作Q值的平均值,advanatge值则是每个动作的Q值相对于value值的偏移量。当更新对应action的Q值时,并不更改advanatge值,而是更改value值,于是该state下所有action的Q值都更新了一次,以此加速eval_net向target_net收敛的速度,公式如下:
预测神经网络仅将状态向量作为输入来计算每次状态变化的Q值,目标神经网络则将每次状态变化造成实际评分变化计算为偏差值与Q值结合,预测神经网络经过N次训练,更新了N次参数。这过程中eval_Q不断的向target_Q收敛,当eval_Q的值无限接近于target_Q时,就可以预测神经网络计算的收益值无限接近于实际收益值。也就是说,通过训练完成的算法模型,将服务器状态在未来可能出现的变化作为action输入,计算出这种变化产生的收益,就能在一定程度上预测服务器的健康状况。亦或者通过算法模型,推导出可能产生最高收益的action,根据这个action主动控制服务器的状态变化来优化服务器健康状况。
通过本发明的技术方案,能够准确的对服务器健康状况进行预测,能够降低服务器的故障风险,提高服务器运维的效率。
在本发明的一个优选实施例中,监控服务器的运行状态,并对服务器运行时的状态信息进行采集包括:
定时采集,定时采集为根据采集频率,每间隔一段时间采集一次状态信息;
实时反应采集,实时反应采集为给每一个需要监控的模块设定一个监视器,并为每个监视器设定触发阈值,响应于模块的状态变化超出了触发阈值,则采集状态信息。
在本发明的一个优选实施例中,状态信息包括CPU占用率、硬盘转速、主板电压、内存占用率、环境温度、CPU频率、内存吞吐量、硬盘读写速度、网络传输速率和各个硬件的温度。
在本发明的一个优选实施例中,将采集到的状态信息分为状态数据和评估数据包括:
将CPU占用率、硬盘转速、主板电压、内存占用率、环境温度划分为状态数据;
将CPU频率、内存吞吐量、硬盘读写速度、网络传输速率和各个硬件的温度划分为评估数据。
在本发明的一个优选实施例中,将状态信息进行预处理以将不同类型的数据转置成数值包括:
根据状态信息的数据获取该状态信息对应的值区间;
根据状态信息的数值和对应的值区间的最小值和最大值将状态信息的数值转换为0-1区间内的数值。
在本发明的一个优选实施例中,将评估数据构建成一维评分向量包括:
将评估数据按照速率越高性能越强和温度越高健康状况越差的规则来为服务器当前的健康状况评分;
将每条状态数据和对应的评分组成一维向量以得到一维评分向量。
在本发明的一个优选实施例中,构建DQN算法模型包括:
建立预测神经网络和目标神经网络,预测神经网络和目标神经网络结构相同,预测神经网络每次训练更新一次参数,目标神经网络每经过预设次数训练更新一次参数;
每经过一次训练计算预测神经网络和目标神经网络之间的误差值,并根据误差值调整训练梯度,并更新预测神经网络的参数。
通过本发明的技术方案,能够准确的对服务器健康状况进行预测,能够降低服务器的故障风险,提高服务器运维的效率。
需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,上述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中存储介质可为磁碟、光盘、只读存储器(Read-Only Memory,ROM)或随机存取存储器(Random AccessMemory,RAM)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
此外,根据本发明实施例公开的方法还可以被实现为由CPU执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被CPU执行时,执行本发明实施例公开的方法中限定的上述功能。
基于上述目的,本发明的实施例的第二个方面,提出了一种服务器健康状况预测的装置,如图2所示,装置200包括:
采集模块,采集模块配置为监控服务器的运行状态,并对服务器运行时的状态信息进行采集;
转置模块,转置模块配置为将采集到的状态信息分为状态数据和评估数据,并进行预处理以将不同类型的数据转置成数值;
构建模块,构建模块配置为将状态数据构建成二维状态向量,并将评估数据构建成一维评分向量;
训练模块,训练模块配置为构建DQN算法模型,并将二维状态向量和一维评分向量输入到DQN算法模型中以对DQN算法模型进行训练,并基于训练后的模型对服务器健康状况进行预测。
基于上述目的,本发明实施例的第三个方面,提出了一种计算机设备。图3示出的是本发明提供的计算机设备的实施例的示意图。如图3所示,本发明实施例包括如下装置:至少一个处理器S21;以及存储器S22,存储器S22存储有可在处理器上运行的计算机指令S23,指令由处理器执行时实现以下方法:
监控服务器的运行状态,并对服务器运行时的状态信息进行采集;
将采集到的状态信息分为状态数据和评估数据,并进行预处理以将不同类型的数据转置成数值;
将状态数据构建成二维状态向量,并将评估数据构建成一维评分向量;
构建DQN算法模型,并将二维状态向量和一维评分向量输入到DQN算法模型中以对DQN算法模型进行训练,并基于训练后的模型对服务器健康状况进行预测。
在本发明的一个优选实施例中,监控服务器的运行状态,并对服务器运行时的状态信息进行采集包括:
定时采集,定时采集为根据采集频率,每间隔一段时间采集一次状态信息;
实时反应采集,实时反应采集为给每一个需要监控的模块设定一个监视器,并为每个监视器设定触发阈值,响应于模块的状态变化超出了触发阈值,则采集状态信息。
在本发明的一个优选实施例中,状态信息包括CPU占用率、硬盘转速、主板电压、内存占用率、环境温度、CPU频率、内存吞吐量、硬盘读写速度、网络传输速率和各个硬件的温度。
在本发明的一个优选实施例中,将采集到的状态信息分为状态数据和评估数据包括:
将CPU占用率、硬盘转速、主板电压、内存占用率、环境温度划分为状态数据;
将CPU频率、内存吞吐量、硬盘读写速度、网络传输速率和各个硬件的温度划分为评估数据。
在本发明的一个优选实施例中,将状态信息进行预处理以将不同类型的数据转置成数值包括:
根据状态信息的数据获取该状态信息对应的值区间;
根据状态信息的数值和对应的值区间的最小值和最大值将状态信息的数值转换为0-1区间内的数值。
在本发明的一个优选实施例中,将评估数据构建成一维评分向量包括:
将评估数据按照速率越高性能越强和温度越高健康状况越差的规则来为服务器当前的健康状况评分;
将每条状态数据和对应的评分组成一维向量以得到一维评分向量。
在本发明的一个优选实施例中,构建DQN算法模型包括:
建立预测神经网络和目标神经网络,预测神经网络和目标神经网络结构相同,预测神经网络每次训练更新一次参数,目标神经网络每经过预设次数训练更新一次参数;
每经过一次训练计算预测神经网络和目标神经网络之间的误差值,并根据误差值调整训练梯度,并更新预测神经网络的参数。
基于上述目的,本发明实施例的第四个方面,提出了一种计算机可读存储介质。图4示出的是本发明提供的计算机可读存储介质的实施例的示意图。如图4所示,计算机可读存储介质S31存储有被处理器执行时执行如下方法的计算机程序S32:
监控服务器的运行状态,并对服务器运行时的状态信息进行采集;
将采集到的状态信息分为状态数据和评估数据,并进行预处理以将不同类型的数据转置成数值;
将状态数据构建成二维状态向量,并将评估数据构建成一维评分向量;
构建DQN算法模型,并将二维状态向量和一维评分向量输入到DQN算法模型中以对DQN算法模型进行训练,并基于训练后的模型对服务器健康状况进行预测。
在本发明的一个优选实施例中,监控服务器的运行状态,并对服务器运行时的状态信息进行采集包括:
定时采集,定时采集为根据采集频率,每间隔一段时间采集一次状态信息;
实时反应采集,实时反应采集为给每一个需要监控的模块设定一个监视器,并为每个监视器设定触发阈值,响应于模块的状态变化超出了触发阈值,则采集状态信息。
在本发明的一个优选实施例中,状态信息包括CPU占用率、硬盘转速、主板电压、内存占用率、环境温度、CPU频率、内存吞吐量、硬盘读写速度、网络传输速率和各个硬件的温度。
在本发明的一个优选实施例中,将采集到的状态信息分为状态数据和评估数据包括:
将CPU占用率、硬盘转速、主板电压、内存占用率、环境温度划分为状态数据;
将CPU频率、内存吞吐量、硬盘读写速度、网络传输速率和各个硬件的温度划分为评估数据。
在本发明的一个优选实施例中,将状态信息进行预处理以将不同类型的数据转置成数值包括:
根据状态信息的数据获取该状态信息对应的值区间;
根据状态信息的数值和对应的值区间的最小值和最大值将状态信息的数值转换为0-1区间内的数值。
在本发明的一个优选实施例中,将评估数据构建成一维评分向量包括:
将评估数据按照速率越高性能越强和温度越高健康状况越差的规则来为服务器当前的健康状况评分;
将每条状态数据和对应的评分组成一维向量以得到一维评分向量。
在本发明的一个优选实施例中,构建DQN算法模型包括:
建立预测神经网络和目标神经网络,预测神经网络和目标神经网络结构相同,预测神经网络每次训练更新一次参数,目标神经网络每经过预设次数训练更新一次参数;
每经过一次训练计算预测神经网络和目标神经网络之间的误差值,并根据误差值调整训练梯度,并更新预测神经网络的参数。
此外,根据本发明实施例公开的方法还可以被实现为由处理器执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被处理器执行时,执行本发明实施例公开的方法中限定的上述功能。
此外,上述方法步骤以及系统单元也可以利用控制器以及用于存储使得控制器实现上述步骤或单元功能的计算机程序的计算机可读存储介质实现。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
在一个或多个示例性设计中,功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则可以将功能作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质来传送。计算机可读介质包括计算机存储介质和通信介质,该通信介质包括有助于将计算机程序从一个位置传送到另一个位置的任何介质。存储介质可以是能够被通用或专用计算机访问的任何可用介质。作为例子而非限制性的,该计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储设备、磁盘存储设备或其它磁性存储设备,或者是可以用于携带或存储形式为指令或数据结构的所需程序代码并且能够被通用或专用计算机或者通用或专用处理器访问的任何其它介质。此外,任何连接都可以适当地称为计算机可读介质。例如,如果使用同轴线缆、光纤线缆、双绞线、数字用户线路(DSL)或诸如红外线、无线电和微波的无线技术来从网站、服务器或其它远程源发送软件,则上述同轴线缆、光纤线缆、双绞线、DSL或诸如红外线、无线电和微波的无线技术均包括在介质的定义。如这里所使用的,磁盘和光盘包括压缩盘(CD)、激光盘、光盘、数字多功能盘(DVD)、软盘、蓝光盘,其中磁盘通常磁性地再现数据,而光盘利用激光光学地再现数据。上述内容的组合也应当包括在计算机可读介质的范围内。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。