基于LSTM网络的Web软件系统实时剩余寿命预测①
2021-08-02党伟超白尚旺
党伟超,李 涛,白尚旺
(太原科技大学 计算机科学与技术学院,太原 030024)
长时间运行的软件系统,会出现软件错误不断累积、占用资源不断增加、性能持续下降,最终导致软件失效或崩溃的软件老化现象[1].对于发生老化的软件系统,在适当时刻主动进行抗衰操作可以避免软件发生失效[2].因此,如果能够实时准确预测软件系统的剩余寿命,通过预测软件剩余使用寿命来推导软件最优抗衰时刻,将会减少抗衰决策判断误差.
软件剩余使用寿命(Remaining Useful Life,RUL)指软件以当前的运行条件,能够实现其正常功能的剩余时间[3].RUL 常见的预测方法可分为基于模型与数据驱动的方法.基于模型的方法是指通过构建设备退化的数学或物理模型来进行预测.马波等人提出了一种基于状态监测信息和滚动轴承退化物理模型的寿命预测方法[4].基于模型的方法取得了不错的效果,但它依赖与特定的模型,不利于推广[5].
数据驱动中的深度学习方法由于具有强大的数据驱动能力,并且无需知道确切的物理模型和领域知识,以及在非线性映射特征提取方面的优异性能,成为了剩余寿命预测领域中热门方法[6].闫楚良等人[7]和王佳炜等人[8]用BP 神经网络分别对材料疲劳寿命和电磁继电器进行了预测.Felix 等人提出用循环神经网络(Recurement Netural Network,RNN)对航空发动机领域剩余寿命进行了预测[9].RNN 网络在结构设计中引入了时序的概念,在学习具有内在依赖性的时序数据时能够产生对过去数据的记忆状态,能够从原始数据获取更多的数据规律性特征.LSTM (Long Short-Term Memory)作为一种改进后的RNN 网络,成为剩余寿命预测的热点技术.在航天发动机、锂电池、滚动轴承等剩余寿命预测领域都取得了成功[10–12].
基于上述分析,本文提出了一种基于LSTM的Web软件系统实时剩余寿命预测模型,该模型充分考虑了Web 软件系统资源消耗的时间特性,将当前系统的剩余寿命动态地与Web 资源损耗情况相关联.
1 模型原理
1.1 长短期记忆网络
LSTM是一种改进之后的循环神经网络,可以解决RNN 感知能力下降的问题[13].与RNN 相比,LSTM在其基础上增加了一个细胞状态(cell state),内部有4个网络层.一个典型的LSTM 通过3个门来控制细胞状态,这3个门分别为遗忘门、输入门和输出门.如图1所示.门控循环单元(Gate Recurrent Unit,GRU)是LSTM 网络的一种变体,它组合了遗忘门和输入门到一个单独的“更新门”中,合并了细胞状态和隐藏状态,没有输出门,增加了重置门,如图2所示.
图1 LSTM 单元结构图
图2 GRU 单元结构图
LSTM 三个门基于Sigmoid函数来增加或删除细胞状态中的信息,其中遗忘门和控制门用来控制上一时刻细胞状态ct−1和当前输入新生成~ct里有多少信息可以加到当前的细胞状态中ct去,通过遗忘门和输入门的输出,更新细胞状态.式(1)为给定一个老化序列数据{x1,x2,···,xt,···,xT},其中xt∈Rd,其中xt∈Rd,d为老化指标信息特征个数,T为时间步,当输入网络时各门的计算结果.
式中,ft,it,ot∈Rm分别表示遗忘门、输入门、输出门的计算结果;,ct,ht∈Rm分别表示为新生成的细胞状态、当前细胞状态、隐含层的输出结果.m为隐含层LSTM 单元的数量.Whf,Whi,Who,Whc和Wxf,Wxi,Wxo,Wxc∈Rm×m是权重参数;bf,bi,bo,bc∈Rm×d为偏差参数.Sigmoid(),tanh()为激活函数,⊙表示hadamard 乘积.
1.2 基于LSTM 网络的Web 系统寿命预测模型构建过程
基于LSTM 剩余寿命预测模型由输入层、两层LSTM 层、池化层、全连接层、输出层构成.如图3所示.
图3 模型结构图
(1)收集样本并进行标准化处理
每秒收集一次Web 软件系统运行过程内存使用量数据,假设第n秒发上了OOM (Out Of Memory)故障,则一共收集了n秒的系统运行数据.OOM 指的是当系统因为没有足够的内存为对象分配空间,就会报出这种故障.将系统在第i秒的内存使用量表示为mi,则系统在i秒的剩余寿命可表示为ri=n−i,假设系统运行了k秒以后才进入系统老化状态,则每次运行可得到如下采样数据:
得到的样本表示为(M,R)={(mi,ri),i=1,2,3,···,n}.标准化处理后的样本表示为(M′,R′)={(m′i,ri′),i=1,2,3,···,n},其中m′i和ri′的定义如式(3)所示:
(2)按照时间步长得到模型的输入
将集合M′按照时间步长w分割为n−w个长度为w的时间序列,用X表示,对应的实际寿命用Y表示,如式(4)所示:
(3)确定LSTM的网络结构并初始化网络
确定网络的时间步长、隐含层单元数、每层网络节点的舍弃率以及相应的激活函数、误差的计算方式和权重更新迭代方式.给定初始权值矩阵,设置最大迭代次数和最小误差值,训练网络以更新各项网络参数.
(4)前向计算
将X={X1,X2,···,Xi,···,Xn−w}输入LSTM 网络,根据式(1)计算对应的遗忘门、输入门以及输出门的值,经过LSTM 层得到的网络输出表示为式(5):
(5)池化层和全连接层
池化层将经过LSTM 层处理输出的Ht′平均池化,得到∈Rm,再经过全连接层将进行特征融合,得到∈R,再经过反标准化处理,得到最终预测剩余寿命的预测值.
(6)定义损失函数
损失函数的计算公式如式(6)所示,式中,n为测试样本总数,为剩余寿命的预测值,Yi为剩余寿命的真实值,w为时间步长的值.
(7)反向误差传播
采用批量梯度下降算法对指标数据进行批次划分,采用优化算法(RMSprop、AdaDelta、Adamax、Adam)对当前的损失函数进行优化,实时调整网络的偏置和权值,使网络误差不断减少.当最小误差和迭代次数满足要求时停止训练模型.将测试样本数据输入模型得到预测结果.
(8)评价指标
为评估基于LSTM 网络的Web 寿命预测模型的性能,用平均绝对误差(Mean Absolute Error,MAE)和均方根误差(Root Mean Squared Error,RMSE)作为评价指标.其公式如下:
除了RMSE和MAE之外,本文引入另外两个相对评价指标:指数评价函数(Scoring Function,SF)和相对准确率(Accuracy).预测寿命相对剩余寿命偏小和偏大,分别设置不同的影响因子,分别记做a1和a2,且a1>a2,这是因为比起Web 失效后采取抗衰操作,在失效之前执行抗衰操作带来较小的损失.本文中影响因子设为a1=150,a2=50.
2 实验与结果分析
由于软件老化是一个错误不断累计的过程,Web软件系统开始出现老化后并不会立刻失效,需要耗费很长时间才会发现故障.受Matias 等人提出的系统化方法的启发[14],本文仿照工业领域应用的加速理论,在Web 软件系统中采用加速内存泄露的方法收集可以反映软件老化情况的指标数据,基于收集到的时序数据,构建基于LSTM的Web 软件系统实时剩余寿命预测模型.
2.1 数据收集
为收集因内存泄露导致的软件老化的指标数据,搭建了一个符合多层TPC-W 基准测试规范的电子商务网站购书系统.该软件系统由一个Web 服务器,一个数据库服务器和一组模拟的客户端组成.三者之间的关系如图4所示,Web 服务器Tomcat 关于JVM的内存配置参数如表1所示.
表1 Tomcat 关于JVM 堆内存配置信息
设定服务端的内存泄漏强度和客户端并发数,运行该系统直到发生OOM 故障为一次实验.当发生OOM 故障时,记当前时刻为T,该时刻系统剩余寿命r=0.实验过程中每1 s 收集一次JVM的内存使用量,采集到的样本个数分别为10929,8202.如图5所示,表示Web 系统在不同内存泄露强度(leakage)和客户端并发数(concurrency)下的内存变化趋势图.表2为数据对应的实验参数.
图5 JVM内存使用情况变化趋势图
2.2 实验环境
2.3 基于LSTM的剩余寿命预测模型
实验环境参数如表3.本文使用Keras 框架搭建并训练LSTM 网络预测模型,所使用到的网络主要由循环层(recurrent)中的LSTM 层和全连接层(dense)组成.用Data1 作为训练集,其余3 组作为测试集.分别比较不同优化算法、隐含层单元数下的模型性能.最后在相同参数情况下,与RNN、GRU 模型结构进行对比.
表3 实验环境参数
(1)寻找合适的隐含层单元数量
用Data2 做测试集,用Adam 算法进行优化,MAE作为评价指标,尝试不同隐含层单元数量寻找最佳的网络结构.结果如表4所示,可以看出隐含层单元数量为120 时,MAE的值最小.
表4 不同隐含层单元数量的MAE
(2)优化算法
在隐含层单元数为80 情况下,用Data2 做测试集,采用不同的优化算法训练模型,用MAE作为评价指标.对比不同算法在训练集和测试集上MAE的大小.结果如表5所示,可以看出Adam的算法的性能优于其它算法.
表5 不同优化算法的MAE 对比
(3)与单层LSTM 网络进行对比
为了验证基于LSTM 网络的Web 软件系统剩余寿命预测模型的优势,用Adam 优化算法、隐含层单元数量为120的参数下,将双层LSTM 网络的结构与单层的LSTM 网络结构做了对比.从图6可以看出,双层LSTM 网络结构的拟合效果更好,用MAE和SF作为评价指标,对比两种网络的性能.如表6所示,可以看出双层的LSTM 网络结构相较于单层的LSTM 网络结构性能有所提升.
图6 寿命预测结果对比图
表6 网络性能对比
2.4 结果分析
第2.3 节实验验证了基于神经网络RNN 以及LSTM的Web 软件系统剩余寿命预测模型的适用性.而从表6可看出,改进后的基于LSTM 寿命预测模型对于Web软件系统抗衰决策具有良好指导意义.为了进一步验证改进后的基于LSTM 寿命预测模型的预测能力,表7列出了各网络模型在不同指标下的评价指标对比,表中PT(Prediciton Time)表示单位样本预测所需要的时间,单位为ms,从表中可以看出,PT值较小,满足实时预测要求.从表中可以看出,改进后LSTM 寿命预测模型在3 组实验里的MAE、RMSE、SF都是最低,Accuracy最高,说明该寿命预测相较与BP 网络和常规循环神经网络而言,预测精度最高.
表7 各网络预测精度对比
3 结论
本文通过搭建引入内存泄露的软件老化实验平台收集能够反映软件老化的指标数据,根据获取到的性能指标数据构建并训练了基于LSTM的Web 软件系统实时剩余寿命预测模型.通过实验表明该预测模型与Web 软件系统的寿命趋势一致,拟合度很高,能够准确地预测软件的剩余寿命,为及时采取老化软件的抗衰决策提供保证.与常规循环神经网络和BP 网络相比,满足实时性要求,预测精度高.说明LSTM 网络能够完成Web 软件系统实时剩余寿命预测的要求.