CN110083518B - 一种基于AdaBoost-Elman的虚拟机软件老化预测方法 - Google Patents

一种基于AdaBoost-Elman的虚拟机软件老化预测方法 Download PDF

Info

Publication number
CN110083518B
CN110083518B CN201910354685.2A CN201910354685A CN110083518B CN 110083518 B CN110083518 B CN 110083518B CN 201910354685 A CN201910354685 A CN 201910354685A CN 110083518 B CN110083518 B CN 110083518B
Authority
CN
China
Prior art keywords
virtual machine
software aging
cur
disk
elman
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910354685.2A
Other languages
English (en)
Other versions
CN110083518A (zh
Inventor
郭军
王馨悦
张斌
刘晨
侯帅
侯凯
李薇
柳波
刘文凤
王嘉怡
张瀚铎
张娅杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Northeastern University China
Original Assignee
Northeastern University China
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Northeastern University China filed Critical Northeastern University China
Priority to CN201910354685.2A priority Critical patent/CN110083518B/zh
Priority to PCT/CN2019/090871 priority patent/WO2020220437A1/zh
Publication of CN110083518A publication Critical patent/CN110083518A/zh
Application granted granted Critical
Publication of CN110083518B publication Critical patent/CN110083518B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3447Performance evaluation by modeling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供一种基于AdaBoost‑Elman的虚拟机软件老化预测方法,涉及云计算技术领域。该方法首先设定评估虚拟机软件老化程度的等级,并训练虚拟机的软件老化指标预测模型和未老化虚拟机参照预测模型;然后将业务并发量预测值和性能数据输入到离线过程训练的虚拟机的软件老化指标预测模型和未老化虚拟机参照预测模型中,输出虚拟机的软件老化指标预测结果和未老化虚拟机的参照预测结果;最后根据虚拟机的软件老化指标预测结果和未老化虚拟机的参照预测结果来评估虚拟机的软件老化趋势。本发明方法能够预测出当前工作虚拟机的软件老化指标,并与未老化的虚拟机进行对比,从而得到下一段时间虚拟机的软件老化程度,提前采取防范措施。

Description

一种基于AdaBoost-Elman的虚拟机软件老化预测方法
技术领域
本发明属于云计算技术领域,涉及一种基于AdaBoost-Elman的虚拟机软件老化预测方法。
背景技术
在云服务系统中,虚拟机长时间不间断地处理业务并发请求,会逐渐出现软件老化,从而导致云服务中断甚至失效。为了保证云服务的性能和可靠性,通常在虚拟机服务失效之前对其重启,恢复虚拟机应用和系统的初始状态。而软件老化趋势的预测是解决虚拟机软件老化问题的关键,如果采取措施太早,重启代价较高,则会造成资源的浪费;如果采取措施太晚,则起不到降低损失的作用。
虚拟机的软件老化是一个漫长复杂的过程,各种各样的错误都可能在虚拟机系统中出现并不断累积。对用户来说,请求的响应时间与失败的请求数是判断虚拟机软件老化的两个有效指标,随着虚拟机内软件老化,请求响应时间变长并且失败请求数增加,然而对云平台管理者来说,实时地获取请求响应时间和失败请求数两个指标会有延迟,而虚拟机的资源指标更加方便获取,并且可用资源的减少是软件老化的具体表现。内存泄漏是云服务系统最常见的老化现象之一,系统的可用内存过少导致虚拟机运行缓慢甚至直接崩溃,当虚拟机系统的物理内存过少时,磁盘上的虚拟内存发挥作用从而占用较多的磁盘资源。前人方法大多是设定固定的老化阈值,然后通过监测或者预测虚拟机的资源使用状况,判断是否超过老化阈值决定是否采取措施。但是这种单一的阈值监控方法并不能准确地表现虚拟机的“健康状况”,经常受到外界负载影响而造成误判。
在云服务系统中,虚拟机的软件老化归根结底是由大量的业务请求带来的,然而现有的软件老化预测方法往往直接对虚拟机资源的历史序列进行拟合,缺乏对虚拟机上各类业务的考虑,所有业务共享虚拟机资源,不同的业务请求需要的资源类型和资源数量不同,前人方法对虚拟机的软件老化指标直接拟合是有误差的。
发明内容
本发明要解决的技术问题是针对上述现有技术的不足,提供一种基于AdaBoost-Elman的虚拟机软件老化预测方法,实现对虚拟机软件老化情况进行预测。
一种基于AdaBoost-Elman的虚拟机软件老化预测方法,包括以下步骤:
步骤1:设定评估虚拟机软件老化程度的等级,具体方法为:
步骤1.1:选取磁盘、物理内存和虚拟内存的利用率作为虚拟机软件老化的评估指标,计算虚拟机的磁盘、物理内存和虚拟内存的平均利用率的性能损耗量wastagedisk、wastagemem、wastageswap,如下公式所示:
wastagedisk=|curdisk-conferdisk| (1a)
wastagemem=|curmem-confermem| (1b)
wastageswap=|curswap-conferswap| (1c)
其中,curdisk、curmem、curswap为虚拟机的平均磁盘利用率、平均物理内存利用率和平均虚拟内存利用率,而conferdisk、confermem、conferswap则是进行软件老化评估的磁盘、物理内存和虚拟内存的平均利用率的基准值;
步骤1.2:计算代表虚拟机的软件老化程度的虚拟机软件老化度s,如下公式所示:
s=ω1*wastagemem2*wastageswap3*wastagedisk (2)
其中,ω1、ω2、ω3为物理内存、虚拟内存和磁盘的平均利用率的性能损耗量的权重系数;
步骤1.3:根据软件老化度s将虚拟机的健康状态划分为五个等级,具体为:
当0≤s<0.2时,判定该虚拟机处于健康状况;
当0.2≤s<0.4时,判定该虚拟机处于轻微软件老化状况;
当0.4≤s<0.6时,判定该虚拟机处于中度软件老化状况;
当0.6≤s<0.8时,判定该虚拟机处于重度软件老化状况;
当0.8≤s≤1时,判定该虚拟机故障,无法正常使用;
步骤2:预测虚拟机的软件老化的离线训练过程,具体如下:
步骤2.1:训练虚拟机的软件老化指标预测模型;
步骤2.1.1:提取虚拟机性能日志库和虚拟机业务并发量日志库中的历史数据,并对提取的历史数据进行预处理;
步骤2.1.1.1:对提取的虚拟机业务并发量缺失点进行处理;
对于个别采样点缺失的情况,采用前一周期和后一周期业务并发量的平均值进行填补;
对于采样点缺失达到百分之九十以上的情况,舍弃全部采样并且将该段时间内业务并发量的值置为零;
步骤2.1.1.2:对于采集到的虚拟机业务并发量中存在异常波动的极大极小样本进行异常值调整;
步骤2.1.1.3:对从虚拟机日志数据库和虚拟机业务并发量日志库中提取到的业务并发量和CPU利用率数据进行数据间隔调整,对采集的数据以秒、分钟或小时为单位进行合并;
步骤2.1.1.4:采用最大最小值归一法将步骤2.1.1.3处理后的数据进行归一化;
步骤2.1.2:通过Elman神经网络建立业务并发量与软件老化指标之间的关系模型,即虚拟机软件老化指标的预测模型;
步骤2.1.2.1:设置Elman神经网络的层数为3;
步骤2.1.2.2:虚拟机支撑的业务数类型为n,设置Elman神经网络的输入节点数in为n+3,输出节点数out为3;
步骤2.1.2.3:采用柯尔莫哥洛夫定理得出Elman神经网络中隐藏节点数hide的大致范围,如下公式所示,然后逐一验证结果准确性;
Figure BDA0002045030300000031
其中,a∈(1,10);
步骤2.1.2.4:Elman神经网络输出层的传递函数采用ReLU线性整流函数或者Sigmod函数,隐藏层的传递函数采用Sigmod函数来对虚拟机的业务并发量和软件老化指标进行预测;
步骤2.1.2.5:将虚拟机的三类性能指标curmem(t)、curswap(t)、curdisk(t),虚拟机上业务并发量的预测值coni(t+1)和物理内存利用率、虚拟内存利用率以及磁盘利用率之间的影响因子σ1、σ2、σ3一同输入到Elman神经网络模型中;
步骤2.1.2.6:输出虚拟机的平均物理内存利用率、平均虚拟内存利用率以及平均磁盘利用率与业务并发量之间的非线性关系,如下公式所示:
curmem(t+1)=f′(coni(t+1),curmem(t),curswap(t),curdisk(t))+σ1 (4a)
curswap(t+1)=g(coni(t+1),curmem(t),curswap(t),curdisk(t))+σ2 (4b)
curdisk(t+1)=h(coni(t+1),curmem(t),curswap(t),curdisk(t))+σ3 (4c)
其中,f′()、g()、h()分别为表示平均物理内存利用率、平均虚拟内存利用率以及平均磁盘利用率与业务并发量之间的非线性关系函数;
步骤2.1.3:使用AdaBoost.RT算法对虚拟机软件老化指标的预测模型进行优化,将一些Elman神经网络作为弱预测模型合成强预测模型Ada-Elman;
步骤2.1.3.1:输入训练样本集,初始化每个Elman神经网络预测器f(x)的参数和训练样本的权值及训练误差的阈值;
所述训练样本的权值及训练误差的阈值如下公式所示:
Figure BDA0002045030300000032
其中,m为Elman神经网络预测器的个数,
Figure BDA0002045030300000041
第为t次迭代第i个样本的权重,i=1,…,m,
Figure BDA0002045030300000042
为训练误差的阈值;
步骤2.1.3.2:设置平均误差率et为零,读取训练样本,训练第t个Elman神经网络预测器ft(x),进而合成强预测模型Ada-Elman;
步骤2.1.3.3:计算AdaBoost-Elman模型在训练集上的误差
Figure BDA0002045030300000043
如下公式所示:
Figure BDA0002045030300000044
其中,
Figure BDA0002045030300000045
为第t次迭代第i个样本的绝对误差,yi为第i个样本值;
步骤2.1.3.4:如果
Figure BDA0002045030300000046
则调整平均误差率
Figure BDA0002045030300000047
步骤2.1.3.5:设置每个Elman神经网络的平均相对误差
Figure BDA0002045030300000048
的初值为0.2,理想上界为0.35,理想下界为0.1,如公式(7)和(8)所示:
Figure BDA0002045030300000049
Figure BDA00020450303000000410
其中,
Figure BDA00020450303000000411
为平均相对误差,
Figure BDA00020450303000000412
为第t个训练样本误差的阈值;
步骤2.1.3.6:计算权值调整因子,如下公式所示:
lt=et 2 (9)
其中,
Figure BDA00020450303000000413
为第t次迭代的权重调整因子;
步骤2.1.3.7:更新每个训练样本的权重,具体为:
如果
Figure BDA00020450303000000414
增大该样本的权重,如下公式所示:
Figure BDA00020450303000000415
其中,Dt为第t次迭代样本权重的规范化因子;
如果
Figure BDA00020450303000000416
调整训练样本的权重,如下公式所示:
Figure BDA00020450303000000417
步骤2.1.3.8:判断是否达到最大迭代次数;
若未达到最大迭代次数,继续迭代;
若达到最大迭代次数,输出Ada-Elamn模型,得到虚拟机软件老化指标预测模型g(x),如下公式所示:
g(x)=∑(-log lt*ft(x))/∑-log lt (12)
步骤2.2:训练未老化虚拟机参照预测模型;
步骤2.2.1:提取新创建并且刚启动不久的虚拟机的性能日志库和业务并发量日志库中的数据,并对提取的数据进行预处理;
步骤2.2.2:通过步骤2.1.2中Elman神经网络建立关系模型的方法和步骤2.1.3中使用AdaBoost.RT算法对关系模型进行优化的方法建立并训练未老化虚拟机参照预测模型;
步骤3:预测虚拟机的软件老化的在线训练过程,具体如下:
步骤3.1:将业务并发量预测值和性能数据输入到离线过程训练的虚拟机的软件老化指标预测模型和未老化虚拟机参照预测模型中;
步骤3.2:虚拟机的软件老化指标预测模型和未老化虚拟机参照预测模型分别输出虚拟机的软件老化指标预测结果和未老化虚拟机的参照预测结果;
步骤3.3:结合步骤1中的评估虚拟机软件老化的方法,根据虚拟机的软件老化指标预测结果和未老化虚拟机的参照预测结果来评估虚拟机的软件老化趋势。
采用上述技术方案所产生的有益效果在于:本发明提供的一种基于Ada-Elman的虚拟机软件老化预测方法,建立基于Ada-Elman的虚拟机软件老化模型,细粒度地研究各类业务并发量与虚拟机软件老化指标之间的关系,进而预测出当前工作虚拟机的软件老化指标,并与未老化的虚拟机进行对比,从而得到下一段时间虚拟机的软件老化程度,提前采取防范措施。
附图说明
图1为本发明实施例提供的飞机票在线订购系统的实例拓扑图;
图2为本发明实施例提供的一种基于AdaBoost-Elman的虚拟机软件老化预测方法的预测过程示意图;
图3为本发明实施例提供的三种不同模型对虚拟机的平均虚拟内存利用率的预测结果对比图;
图4为本发明实施例提供的是虚拟机的平均物理内存利用率的预测结果对比图;
图5为本发明实施例提供的是虚拟机的平均磁盘利用率的预测结果对比图。
图中,1、客户端;2、负载均衡Nginx;3、交换机;4、服务端;5、业务数据库MySQL。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
本实施例使用如图1所示的飞机票在线订购系统模拟PC端用户应用,在曙光服务器上搭建该服务系统,通过对飞机票在线订购系统加压模拟真实的业务并发场景,并采集不同的业务并发量数据,采用本发明的基于AdaBoost-Elman的虚拟机软件老化预测方法实现对该虚拟机软件老化情况进行预测。在该飞机票在线订购系统中,客户端1使用LoadRunner软件产生业务并发访问,它可以模拟大量的用户同时点击飞机票订购系统页面,LoadRunner发送页面请求后,由负载均衡Nginx2实现业务请求的接收和分配,最后服务端4安装Tomcat并部署飞机票在线预订系统,负责读写业务数据库MySQL5,处理LoadRunner发送的请求。通过开源监控工具Collectd周期性采集每台工作虚拟机的性能数据,并保存在Influxdb分布式数据库中,利用采集的虚拟机数据基于Ada-Elman建立模型。
一种基于AdaBoost-Elman的虚拟机软件老化预测方法,如图2所示,包括以下步骤:
步骤1:设定评估虚拟机软件老化程度的等级,具体方法为:
步骤1.1:选取磁盘、物理内存和虚拟内存的利用率作为虚拟机软件老化的评估指标,计算虚拟机的磁盘、物理内存和虚拟内存的平均利用率的性能损耗量wastagedisk、wastagemem、wastageswap,如下公式所示:
wastagedisk=|curdisk-conferdisk |(1a)
wastagemem=|curmem-confermem| (1b)
wastageswap=|curswap-conferswap| (1c)
其中,curdisk、curmem、curswap为虚拟机的平均磁盘利用率、平均物理内存利用率和平均虚拟内存利用率,而conferdisk、confermem、conferswap则是进行软件老化评估的磁盘、物理内存和虚拟内存的平均利用率的基准值;
步骤1.2:计算代表虚拟机的软件老化程度的虚拟机软件老化度s,如下公式所示:
s=ω1*wastagemem2*wastageswap3*wastagedisk (2)
其中,ω1、ω2、ω3为物理内存、虚拟内存和磁盘的平均利用率的性能损耗量的权重系数;
步骤1.3:根据软件老化度s将虚拟机的健康状态划分为五个等级,具体为:
当0≤s<0.2时,判定该虚拟机处于健康状况;
当0.2≤s<0.4时,判定该虚拟机处于轻微软件老化状况;
当0.4≤s<0.6时,判定该虚拟机处于中度软件老化状况;
当0.6≤s<0.8时,判定该虚拟机处于重度软件老化状况;
当0.8≤s≤1时,判定该虚拟机故障,无法正常使用;
步骤2:预测虚拟机的软件老化的离线训练过程,具体如下:
步骤2.1:训练虚拟机的软件老化指标预测模型;
步骤2.1.1:提取虚拟机性能日志库和虚拟机业务并发量日志库中的历史数据,并对提取的历史数据进行预处理;
步骤2.1.1.1:对提取的虚拟机业务并发量缺失点进行处理;
对于个别采样点缺失的情况,采用前一周期和后一周期业务并发量的平均值进行填补;
对于采样点缺失达到百分之九十以上的情况,舍弃全部采样并且将该段时间内业务并发量的值置为零;
步骤2.1.1.2:对于采集到的虚拟机业务并发量中存在异常波动的极大极小样本进行异常值调整;
步骤2.1.1.3:对从虚拟机日志数据库和虚拟机业务并发量日志库中提取到的业务并发量和CPU利用率数据进行数据间隔调整,对采集的数据以秒、分钟或小时为单位进行合并;
步骤2.1.1.4:采用最大最小值归一法将步骤2.1.1.3处理后的数据进行归一化;
步骤2.1.2:通过Elman神经网络建立业务并发量与软件老化指标之间的关系模型,即虚拟机软件老化指标的预测模型;
步骤2.1.2.1:设置Elman神经网络的层数为3;
步骤2.1.2.2:虚拟机支撑的业务数类型为n,设置Elman神经网络的输入节点数in为n+3,输出节点数out为3;
步骤2.1.2.3:采用kolmogorov柯尔莫哥洛夫定理得出Elman神经网络中隐藏节点数hide的大致范围,如下公式所示,然后逐一验证结果准确性;
Figure BDA0002045030300000071
其中,a∈(1,10);
步骤2.1.2.4:Elman神经网络输出层的传递函数采用ReLU线性整流函数或者Sigmod函数,隐藏层的传递函数采用Sigmod函数来对虚拟机的业务并发量和软件老化指标进行预测;
步骤2.1.2.5:将虚拟机的三类性能指标curmem(t)、curswap(t)、curdisk(t),虚拟机上业务并发量的预测值coni(t+1)和物理内存利用率、虚拟内存利用率以及磁盘利用率之间的影响因子σ1、σ2、σ3一同输入到Elman神经网络模型中;
步骤2.1.2.6:输出虚拟机的平均物理内存利用率、平均虚拟内存利用率以及平均磁盘利用率与业务并发量之间的非线性关系,如下公式所示:
curmem(t+1)=f′(coni(t+1),curmem(t),curswap(t),curdisk(t))+σ1 (4a)
curswap(t+1)=g(coni(t+1),curmem(t),curswap(t),curdisk(t))+σ2 (4b)
curdisk(t+1)=h(coni(t+1),curmem(t),curswap(t),curdisk(t))+σ3 (4c)
其中,f′()、g()、h()分别为表示平均物理内存利用率、平均虚拟内存利用率以及平均磁盘利用率与业务并发量之间的非线性关系函数;
步骤2.1.3:使用AdaBoost.RT算法对虚拟机软件老化指标的预测模型进行优化,将一些Elman神经网络作为弱预测模型合成强预测模型Ada-Elman;
步骤2.1.3.1:输入训练样本集,初始化每个Elman神经网络预测器f(x)的参数和训练样本的权值及训练误差的阈值;
所述训练样本的权值及训练误差的阈值如下公式所示:
Figure BDA0002045030300000081
其中,m为Elman神经网络预测器的个数,
Figure BDA0002045030300000082
第为t次迭代第i个样本的权重,i=1,…,m,
Figure BDA0002045030300000083
为训练误差的阈值;
步骤2.1.3.2:设置平均误差率et为零,读取训练样本,训练第t个Elman神经网络预测器ft(x),进而合成强预测模型Ada-Elman;
步骤2.1.3.3:计算AdaBoost-Elman模型在训练集上的误差
Figure BDA0002045030300000084
如下公式所示:
Figure BDA0002045030300000085
其中,
Figure BDA0002045030300000086
为第t次迭代第i个样本的绝对误差,yi为第i个样本值;
步骤2.1.3.4:如果
Figure BDA0002045030300000087
则调整平均误差率
Figure BDA0002045030300000088
步骤2.1.3.5:设置每个Elman神经网络的平均相对误差
Figure BDA0002045030300000089
的初值为0.2,理想上界为0.35,理想下界为0.1,如公式(7)和(8)所示:
Figure BDA00020450303000000810
Figure BDA00020450303000000811
其中,
Figure BDA00020450303000000812
为平均相对误差,
Figure BDA00020450303000000813
为第t个训练样本误差的阈值;
步骤2.1.3.6:计算权值调整因子,如下公式所示:
lt=et 2 (9)
其中,
Figure BDA0002045030300000091
为第t次迭代的权重调整因子;
步骤2.1.3.7:更新每个训练样本的权重,具体为:
如果
Figure BDA0002045030300000092
增大该样本的权重,如下公式所示:
Figure BDA0002045030300000093
其中,Dt为第t次迭代样本权重的规范化因子;
如果
Figure BDA0002045030300000094
调整训练样本的权重,如下公式所示:
Figure BDA0002045030300000095
步骤2.1.3.8:判断是否达到最大迭代次数;
若未达到最大迭代次数,继续迭代;
若达到最大迭代次数,输出Ada-Elamn模型,得到虚拟机软件老化指标预测模型g(x),如下公式所示:
g(x)=∑(-log lt*ft(x))/∑-log lt (12)
步骤2.2:训练未老化虚拟机参照预测模型;
步骤2.2.1:提取新创建并且刚启动不久的虚拟机的性能日志库和业务并发量日志库中的数据,并对提取的数据进行预处理;
步骤2.2.2:通过步骤2.1.2中Elman神经网络建立关系模型的方法和步骤2.1.3中使用AdaBoost.RT算法对关系模型进行优化的方法建立并训练未老化虚拟机参照预测模型;
步骤3:预测虚拟机的软件老化的在线训练过程,具体如下:
步骤3.1:将业务并发量预测值和性能数据输入到离线过程训练的虚拟机的软件老化指标预测模型和未老化虚拟机参照预测模型中;
步骤3.2:虚拟机的软件老化指标预测模型和未老化虚拟机参照预测模型分别输出虚拟机的软件老化指标预测结果和未老化虚拟机的参照预测结果;
步骤3.3:结合步骤1中的评估虚拟机软件老化的方法,根据虚拟机的软件老化指标预测结果和未老化虚拟机的参照预测结果来评估虚拟机的软件老化趋势。
本实施例中,虚拟机老化的模拟和预测过程如下:
(1)首先在订票网页的Servlet中申请一个静态的HashSet,然后在doPost方法中申请一定数量的对象放到之前的HashSet中,在虚拟机运行时不断地调用订票网页即可达到消耗可用内存的目的,虚拟机内存消耗的速度由doPost方法中申请对象的数量决定,运用此过程来模拟虚拟机软件老化。
(2)使用LoadRunner对服务端虚拟机加压并采集数据。采集的数据进行规范化,并将数据间隔设为15秒,分成data_health和data_aging两组,分别用来建立当前虚拟机的软件老化指标预测模型和参照预测模型。data_health取自新建虚拟机启动后3个小时,时间为2018年10月8日9时至2018年10月8日12时;data_aging取自虚拟机持续工作一段时间后3个小时的监测数据,时间为2018年10月8日18时至2018年10月8日21时。
(3)通过分析前165分钟的监测数据,分别利用Ada-Elman、Elman和BP神经网络对虚拟机建立软件老化指标预测模型,记为aging_Ada-Elman、aging_Elman和aging_BP模型,预测未来15分钟的虚拟机软件老化指标。同样地,利用Ada-Elman、Elman和BP神经网络分别建立参照模型,记为confer_Ada-Elman、confer_Elman和confer_BP模型,并将所有模型的输出与真实值对比分析。实验中共设置登录、退票、浏览、注册等八类业务,因此Ada-Elman和Elman模型的输入包括八类业务的并发访问量和物理内存、虚拟内存、磁盘数据,BP模型是直接对三类老化指标的历史序列进行拟合。多次实验后设定Elman模型各层的节点数为11-8-3,学习率是0.2,Ada-Elman模型中Elman预测器个数为10,每个预测器的各层节点数为11-7-3,学习率是0.2,BP模型的各层节点数为11-8-3,学习率是0.3,三种模型的最大迭代轮数为1000。
本实施例中,aging_Ada-Elman、aging_Elman和aging_BP三种模型对虚拟机软件老化指标的预测结果如图3-5所示。aging_Ada-Elman模型的预测结果更加接近虚拟机的真实性能值,尤其对波动频繁的虚拟内存利用率预测时,aging_BP和aging_Elman的拟合结果偏差较大,而aging_Ada-Elman拟合效果更好。
本实施例中,不同模型预测的误差表1所示,对于虚拟机的三类软件老化指标,Ada-Elman预测的平均绝对误差MAE和均方误差MSE均小于Elman预测的平均绝对误差和均方误差,表明本文提出的Ada-Elman预测精度比单个Elman模型高,同样Ada-Elman预测的平均绝对误差和均方误差也均小于BP模型预测的平均绝对误差和均方误差,这是因为Ada-Elman并没有直接对历史序列建模,而是充分考虑了业务并发量和软件老化指标之间的关系。
表1不同方法对软件老化指标的预测误差
Figure BDA0002045030300000101
表1反映了不同模型的时间开销,表中结果为多次预测后的平均值,其中,BP模型所用时间最短,Ada-Elman和Elman模型时间更长,这是因为BP模型是直接对软件老化指标的历史序列进行建模,而不用输入业务并发量。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。

Claims (6)

1.一种基于AdaBoost-Elman的虚拟机软件老化预测方法,其特征在于:包括以下步骤:
步骤1:设定评估虚拟机软件老化程度的等级,具体方法为:
步骤1.1:选取磁盘、物理内存和虚拟内存的利用率作为虚拟机软件老化的评估指标,计算虚拟机的磁盘、物理内存和虚拟内存的平均利用率的性能损耗量wastagedisk、wastagemem、wastageswap
步骤1.2:计算代表虚拟机的软件老化程度的虚拟机软件老化度s;
步骤1.3:根据软件老化度s将虚拟机的健康状态划分为五个等级,具体为:
当0≤s<0.2时,判定该虚拟机处于健康状况;
当0.2≤s<0.4时,判定该虚拟机处于轻微软件老化状况;
当0.4≤s<0.6时,判定该虚拟机处于中度软件老化状况;
当0.6≤s<0.8时,判定该虚拟机处于重度软件老化状况;
当0.8≤s≤1时,判定该虚拟机故障,无法正常使用;
步骤2:预测虚拟机的软件老化的离线训练过程,具体如下:
步骤2.1:训练虚拟机的软件老化指标预测模型;
步骤2.1.1:提取虚拟机性能日志库和虚拟机业务并发量日志库中的历史数据,并对提取的历史数据进行预处理;
步骤2.1.2:通过Elman神经网络建立业务并发量与软件老化指标之间的关系模型,即虚拟机软件老化指标的预测模型;
步骤2.1.3:使用AdaBoost.RT算法对虚拟机软件老化指标的预测模型进行优化,将一些Elman神经网络作为弱预测模型合成强预测模型AdaBoost-Elman;
步骤2.2:训练未老化虚拟机参照预测模型;
步骤2.2.1:提取新创建并且刚启动不久的虚拟机的性能日志库和业务并发量日志库中的数据,并对提取的数据进行预处理;
步骤2.2.2:通过步骤2.1.2中Elman神经网络建立关系模型的方法和步骤2.1.3中使用AdaBoost.RT算法对关系模型进行优化的方法建立并训练未老化虚拟机参照预测模型;
步骤3:预测虚拟机的软件老化的在线训练过程,具体如下:
步骤3.1:将业务并发量预测值和性能数据输入到离线过程训练的虚拟机的软件老化指标预测模型和未老化虚拟机参照预测模型中;
步骤3.2:虚拟机的软件老化指标预测模型和未老化虚拟机参照预测模型分别输出虚拟机的软件老化指标预测结果和未老化虚拟机的参照预测结果;
步骤3.3:结合步骤1中的评估虚拟机软件老化的方法,根据虚拟机的软件老化指标预测结果和未老化虚拟机的参照预测结果来评估虚拟机的软件老化趋势。
2.根据权利要求1所述的一种基于AdaBoost-Elman的虚拟机软件老化预测方法,其特征在于:步骤1.1所述虚拟机的磁盘、物理内存和虚拟内存的平均利用率的性能损耗量wastagedisk、wastagemem、wastageswap的计算公式如下所示:
wastagedisk=|curdisk-conferdisk| (1a)
wastagemem=|curmem-confermem| (1b)
wastageswap=|curswap-conferswap| (1c)
其中,curdisk、curmem、curswap为虚拟机的平均磁盘利用率、平均物理内存利用率和平均虚拟内存利用率,而conferdisk、confermem、conferswap则是进行软件老化评估的磁盘、物理内存和虚拟内存的平均利用率的基准值。
3.根据权利要求2所述的一种基于AdaBoost-Elman的虚拟机软件老化预测方法,其特征在于:步骤1.2所述虚拟机软件老化度s如下公式所示:
s=ω1*wastagemem2*wastageswap3*wastagedisk (2)
其中,ω1、ω2、ω3为物理内存、虚拟内存和磁盘的平均利用率的性能损耗量的权重系数。
4.根据权利要求3所述的一种基于AdaBoost-Elman的虚拟机软件老化预测方法,其特征在于:所述步骤2.1.1的具体方法为:
步骤2.1.1.1:对提取的虚拟机业务并发量缺失点进行处理;
对于个别采样点缺失的情况,采用前一周期和后一周期业务并发量的平均值进行填补;
对于采样点缺失达到百分之九十以上的情况,舍弃全部采样并且将该段时间内业务并发量的值置为零;
步骤2.1.1.2:对于采集到的虚拟机业务并发量中存在异常波动的极大极小样本进行异常值调整;
步骤2.1.1.3:对从虚拟机日志数据库和虚拟机业务并发量日志库中提取到的业务并发量和CPU利用率数据进行数据间隔调整,对采集的数据以秒、分钟或小时为单位进行合并;
步骤2.1.1.4:采用最大最小值归一法将步骤2.1.1.3处理后的数据进行归一化。
5.根据权利要求4所述的一种基于AdaBoost-Elman的虚拟机软件老化预测方法,其特征在于:所述步骤2.1.2的具体方法为:
步骤2.1.2.1:设置Elman神经网络的层数为3;
步骤2.1.2.2:虚拟机支撑的业务数类型为n,设置Elman神经网络的输入节点数in为n+3,输出节点数out为3;
步骤2.1.2.3:采用柯尔莫哥洛夫定理得出Elman神经网络中隐藏节点数hide的范围,如下公式所示,然后逐一验证结果准确性;
Figure FDA0003109481170000031
其中,a∈(1,10);
步骤2.1.2.4:Elman神经网络输出层的传递函数采用ReLU线性整流函数或者Sigmod函数,隐藏层的传递函数采用Sigmod函数来对虚拟机的业务并发量和软件老化指标进行预测;
步骤2.1.2.5:将虚拟机的三类性能指标curmem(t)、curswap(t)、curdisk(t),虚拟机上业务并发量的预测值coni(t+1)和物理内存利用率、虚拟内存利用率以及磁盘利用率之间的影响因子σ1、σ2、σ3一同输入到Elman神经网络模型中;
步骤2.1.2.6:输出虚拟机的平均物理内存利用率、平均虚拟内存利用率以及平均磁盘利用率与业务并发量之间的非线性关系,如下公式所示:
curmem(t+1)=f′(coni(t+1),curmem(t),curswap(t),curdisk(t))+σ1 (4a)
curswap(t+1)=g(coni(t+1),curmem(t),curswap(t),curdisk(t))+σ2 (4b)
curdisk(t+1)=h(coni(t+1),curmem(t),curswap(t),curdisk(t))+σ3 (4c)
其中,f′()、g()、h()分别为表示平均物理内存利用率、平均虚拟内存利用率以及平均磁盘利用率与业务并发量之间的非线性关系函数。
6.根据权利要求5所述的一种基于AdaBoost-Elman的虚拟机软件老化预测方法,其特征在于:所述步骤2.1.3的具体方法为:
步骤2.1.3.1:输入训练样本集,初始化每个Elman神经网络预测器f(x)的参数和训练样本的权值及训练误差的阈值;
所述训练样本的权值及训练误差的阈值如下公式所示:
Figure FDA0003109481170000032
其中,m为Elman神经网络预测器的个数,
Figure FDA0003109481170000033
第为t次迭代第i个样本的权重,i=1,…,m,
Figure FDA0003109481170000034
为训练误差的阈值;
步骤2.1.3.2:设置平均误差率et为零,读取训练样本,训练第λ个Elman神经网络预测器fλ(x),进而合成强预测模型AdaBoost-Elman;
步骤2.1.3.3:计算AdaBoost-Elman模型在训练集上的误差
Figure FDA0003109481170000041
如下公式所示:
Figure FDA0003109481170000042
其中,
Figure FDA0003109481170000043
为第t次迭代第i个样本的绝对误差,yi为第i个样本值;
步骤2.1.3.4:如果
Figure FDA0003109481170000044
则调整平均误差率
Figure FDA0003109481170000045
步骤2.1.3.5:设置每个Elman神经网络的平均相对误差
Figure FDA0003109481170000046
的初值为0.2,理想上界为0.35,理想下界为0.1,如公式(7)和(8)所示:
Figure FDA0003109481170000047
Figure FDA0003109481170000048
其中,
Figure FDA0003109481170000049
为平均相对误差,
Figure FDA00031094811700000410
为第t次迭代训练误差的阈值;
步骤2.1.3.6:计算权值调整因子,如下公式所示:
Figure FDA00031094811700000411
其中,
Figure FDA00031094811700000412
为第t次迭代的权重调整因子;
步骤2.1.3.7:更新每个训练样本的权重,具体为:
如果
Figure FDA00031094811700000413
增大该样本的权重,如下公式所示:
Figure FDA00031094811700000414
其中,Dt为第t次迭代样本权重的规范化因子;
如果
Figure FDA00031094811700000415
调整训练样本的权重,如下公式所示:
Figure FDA00031094811700000416
步骤2.1.3.8:判断是否达到最大迭代次数;
若未达到最大迭代次数,继续迭代;
若达到最大迭代次数,输出AdaBoost-Elman模型,得到虚拟机软件老化指标预测模型g(x),如下公式所示:
Figure FDA00031094811700000417
CN201910354685.2A 2019-04-29 2019-04-29 一种基于AdaBoost-Elman的虚拟机软件老化预测方法 Active CN110083518B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910354685.2A CN110083518B (zh) 2019-04-29 2019-04-29 一种基于AdaBoost-Elman的虚拟机软件老化预测方法
PCT/CN2019/090871 WO2020220437A1 (zh) 2019-04-29 2019-06-12 一种基于AdaBoost-Elman的虚拟机软件老化预测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910354685.2A CN110083518B (zh) 2019-04-29 2019-04-29 一种基于AdaBoost-Elman的虚拟机软件老化预测方法

Publications (2)

Publication Number Publication Date
CN110083518A CN110083518A (zh) 2019-08-02
CN110083518B true CN110083518B (zh) 2021-11-16

Family

ID=67417651

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910354685.2A Active CN110083518B (zh) 2019-04-29 2019-04-29 一种基于AdaBoost-Elman的虚拟机软件老化预测方法

Country Status (2)

Country Link
CN (1) CN110083518B (zh)
WO (1) WO2020220437A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116627759B (zh) * 2023-05-19 2024-02-27 北京神州安付科技股份有限公司 一种金融支付设备电路安全检测装置
CN116661954B (zh) * 2023-07-21 2023-11-03 苏州浪潮智能科技有限公司 虚拟机异常预测方法、装置、通信设备及存储介质
CN117271350A (zh) * 2023-09-28 2023-12-22 江苏天好富兴数据技术有限公司 一种基于日志分析的软件质量评估系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010122709A1 (ja) * 2009-04-23 2010-10-28 日本電気株式会社 若化処理装置、若化処理システム、コンピュータプログラムおよびデータ処理方法
CN104951379A (zh) * 2015-07-21 2015-09-30 国家计算机网络与信息安全管理中心 一种基于乘积季节模型的软件再生方法
CN106776288A (zh) * 2016-11-25 2017-05-31 北京航空航天大学 一种基于Hadoop的分布式系统的健康度量方法
CN109408386A (zh) * 2018-10-18 2019-03-01 中国电子科技集团公司第二十八研究所 一种软件老化流式监测系统及其监测方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101377756B (zh) * 2007-08-30 2011-04-27 联想(北京)有限公司 一种评估计算机系统老化的方法
JP6365543B2 (ja) * 2013-08-12 2018-08-01 日本電気株式会社 ソフトウェアエージングテストシステム、ソフトウェアエージングテスト方法及びソフトウェアエージングテスト用プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010122709A1 (ja) * 2009-04-23 2010-10-28 日本電気株式会社 若化処理装置、若化処理システム、コンピュータプログラムおよびデータ処理方法
CN104951379A (zh) * 2015-07-21 2015-09-30 国家计算机网络与信息安全管理中心 一种基于乘积季节模型的软件再生方法
CN106776288A (zh) * 2016-11-25 2017-05-31 北京航空航天大学 一种基于Hadoop的分布式系统的健康度量方法
CN109408386A (zh) * 2018-10-18 2019-03-01 中国电子科技集团公司第二十八研究所 一种软件老化流式监测系统及其监测方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Software Aging in Virtualized Environments: Detection and Prediction;L. Cui, B. Li, J. Li, J. Hardy and L. Liu;《2012 IEEE 18th International Conference on Parallel and Distributed Systems》;20130117;全文 *
基于Elman_AdaBoost强预测器的目标威胁评估模型及算法;王改革; 郭立红; 段红; 刘逻; 王鹤淇;《电子学报》;20120515;第40卷(第5期);全文 *
基于人工神经网络的软件系统老化预测研究;渊岚;《中国优秀硕士学位论文全文数据库 信息科技辑》;20170228;全文 *

Also Published As

Publication number Publication date
WO2020220437A1 (zh) 2020-11-05
CN110083518A (zh) 2019-08-02

Similar Documents

Publication Publication Date Title
JP5313990B2 (ja) 応答時間に基づいてサービスリソース消費を推定すること
CN105550323B (zh) 一种分布式数据库负载均衡预测方法和预测分析器
CN110187990B (zh) 一种基于模式转移的虚拟机混合备用动态可靠性评估方法
CN110083518B (zh) 一种基于AdaBoost-Elman的虚拟机软件老化预测方法
WO2021174811A1 (zh) 车流量时间序列的预测方法及预测装置
WO2018166113A1 (zh) 随机森林模型训练的方法、电子装置及存储介质
CN112270545A (zh) 基于迁移样本筛选的金融风险预测方法、装置和电子设备
CN106803799B (zh) 一种性能测试方法和装置
JP2006024017A (ja) コンピュータ資源のキャパシティを予測するためのシステム、方法およびプログラム
CN106776288B (zh) 一种基于Hadoop的分布式系统的健康度量方法
CN114297036B (zh) 数据处理方法、装置、电子设备及可读存储介质
CN110413657B (zh) 面向季节型非平稳并发量的平均响应时间评估方法
Yu et al. Integrating clustering and learning for improved workload prediction in the cloud
CN111369299A (zh) 识别的方法、装置、设备及计算机可读存储介质
CN111858265A (zh) 一种存储系统的存储故障预测方法、系统及装置
CN115221396A (zh) 基于人工智能的信息推荐方法、装置及电子设备
Incerto et al. Moving horizon estimation of service demands in queuing networks
Sindhu et al. Workload characterization and synthesis for cloud using generative stochastic processes
Adegboyega Time-series models for cloud workload prediction: A comparison
CN116703466A (zh) 基于改进灰狼算法的系统访问量预测方法及其相关设备
WO2022022572A1 (en) Calculating developer time during development process
CN112801156B (zh) 用于人工智能机器学习的业务大数据采集方法及服务器
CN111598390B (zh) 服务器高可用性评估方法、装置、设备和可读存储介质
CN113821419A (zh) 一种基于svr和高斯函数的云服务器老化预测方法
US11354475B2 (en) Systems and methods for accurate voltage impact on integrated timing simulation

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20190802

Assignee: Shenyang Zhizhi Technology Co.,Ltd.

Assignor: Northeastern University

Contract record no.: X2023210000209

Denomination of invention: A Virtual Machine Software Aging Prediction Method Based on AdaBoost Elman

Granted publication date: 20211116

License type: Common License

Record date: 20231127