|
引用本文
孟海宁, 童新宇, 谢国, 张贝贝, 黑新宏. 基于RUL和SVs-GFF的云服务器老化预测方法. 自动化学报, 2024, 50(10): 2036−2048 doi: 10.16383/j.aas.c211112
Meng Hai-Ning, Tong Xin-Yu, Xie Guo, Zhang Bei-Bei, Hei Xin-Hong. Cloud server aging prediction method based on RUL and SVs-GFF. Acta Automatica Sinica, 2024, 50(10): 2036−2048 doi: 10.16383/j.aas.c211112
http://www.aas.net.cn/cn/article/doi/10.16383/j.aas.c211112
关键词
云服务器,软件老化,支持向量回归,高斯函数拟合,剩余使用寿命
摘要
针对云服务器中存在软件老化现象, 将造成系统性能衰退与可靠性下降问题, 借鉴剩余使用寿命(Remaining useful life, RUL)概念, 提出基于支持向量和高斯函数拟合(Support vectors and Gaussian function fitting, SVs-GFF)的老化预测方法. 首先, 提取云服务器老化数据的统计特征指标, 并采用支持向量回归(Support vector regression, SVR)对统计特征指标进行数据稀疏化处理, 得到支持向量(Support vectors, SVs)序列数据; 然后, 建立基于密度聚类的高斯函数拟合(Gaussian function fitting, GFF)模型, 对不同核函数下的支持向量序列数据进行老化曲线拟合, 并采用Fréchet距离优化算法选取最优老化曲线; 最后, 基于最优老化曲线, 评估系统到达老化阈值前的RUL, 以预测系统何时发生老化. 在OpenStack云服务器4个老化数据集上的实验结果表明, 基于RUL和SVs-GFF的云服务器老化预测方法与传统预测方法相比, 具有更高的预测精度和更快的收敛速度.
文章导读
长时间运行的软件系统出现性能衰退、异常和错误增加甚至系统崩溃现象, 称为软件老化[1]. 软件老化是由于软件系统可分配资源匮乏、碎片化严重以及内部错误(如内存泄漏和未正确释放的线程)的长期积累造成的, 而这些错误在软件开发和测试阶段难以检测和消除[2]. 软件老化存在于安全关键软件系统中, 如航天器系统[3]、Android系统[4]和Web服务器[5]等. 云服务器系统的体系结构复杂, 系统内计算资源的申请和释放较频繁, 且云系统长期运行为用户提供服务, 因此云系统更易出现软件老化现象, 影响系统可用性并带来经济损失[6].
如图1所示, 云服务器中存在的软件老化现象主要表现为: 在系统负载整体保持不变的情况下, 云服务器内部资源消耗逐渐增加, 系统性能逐步下降. 当云服务器的资源消耗或性能衰退至系统不可接受状态, 即到达系统老化临界态, 设置老化阈值δ. 当云服务器系统的内部资源消耗超过阈值δ时, 系统随时可能发生故障, 需提前预测系统老化趋势, 并评估系统从任意时刻Ti到达老化阈值前的剩余使用寿命(Remaining useful life, RUL), 从而可以及时采取系统预维护策略[7].
图 1 云服务器老化现象
为避免软件老化, Huang等[8]提出了软件再生. 软件再生是一种主动预防性的容错技术, 通过清理系统运行环境, 重置系统内部状态, 以防止系统未来发生重大故障. 然而, 频繁的软件再生操作将会带来额外的系统开销, 因此需选择最佳时机进行软件再生.
为减少软件再生给系统带来的时间和资源消耗成本, 需要在系统到达老化阈值或发生重大故障前, 对软件老化趋势进行有效预测, 然后及时进行软件再生, 以降低运行风险与成本, 提高系统的可靠性和可用性. 现有的软件老化预测方法可分为基于状态模型的方法和基于数据度量的方法2类. 基于状态模型方法通常依据软件系统的运行状态, 采用Petri网[9]、马尔科夫(Markov)模型[10-14]、随机过程[15]和概率论[16]等数学工具建立系统状态转换模型, 然后计算最优的软件再生时间. 然而, 对实际软件系统很难建立精确的状态模型, 并且随着软件系统规模的增加, 该方法构建的状态空间模型亦呈指数级增长, 将导致状态空间爆炸[17].
目前, 基于数据度量的老化预测方法首先选取系统性能历史数据作为老化指标(如CPU使用率、空闲内存与交换区内存等), 然后设定系统老化阈值, 采取时间序列分析、机器学习等方法预测老化指标历史数据变化趋势, 在预测值到达老化阈值前采取软件再生. 时间序列分析法包括移动平均自回归模型(Auto-regressive integrated moving average, ARIMA)、滑动模型等预测方法, 如Yan等[18]提出通过整合移动平均自回归模型, 对Web服务器资源进行老化预测; Pereira等[19]提出指数平滑模型的软件老化预测方法. Cotroneo等[20]针对Linux系统, 提出基于线性回归和主成分分析的老化预测方法. Matos等[21]针对Eucalyptus云系统老化现象, 提出基于多阈值的时间序列预测方法, 该方法求解得到最优再生时机, 可减少停机时间. 郑鹏飞等[22]采用多元时间序列模型, 预测HelixServer VOD服务器系统老化. 但该类方法对数据量大且波动较大的数据, 难以提取数据特征, 因此预测精度较低. 机器学习方法包括神经网络、支持向量(Support vectors, SVs)机等, 如Islam等[23] 针对亚马逊EC2云系统, 采用神经网络和线性回归的方法, 预测系统资源的使用情况. Yan等[24]采用支持向量机对IIS服务器系统进行老化预测. Qiao等[25]针对安卓系统, 提出基于长短期记忆(Long short-term memory, LSTM)网络的老化预测方法. 然而该类算法在预测时间序列数据时, 需要经验给定模型中的超参数且计算复杂度高. 一些学者提出运用智能算法优化神经网络超参数来提高预测精度, 如Padhy等[26]在研究软件老化时, 采用进化算法优化系统性能参数阈值. Yan[27]基于萤火虫种群算法优化的神经网络模型进行老化预测. 但智能优化算法在网络训练过程中易陷入局部最优, 且收敛速度慢. 此外, Liu等[28]提出ARIMA与LSTM组合模型, 实现对Web服务器老化预测. 孟海宁等[29]提出ARI-MA和循环神经网络的组合模型, 对OpenStack云服务器进行老化预测, 解决了单一老化预测模型存在泛化能力弱、预测精度低的问题.
综上, 上述老化预测方法存在数据特征提取难、模型超参数选择难、计算复杂度高及收敛速度慢的问题. 本文面向云服务器系统, 提出基于支持向量和高斯函数拟合(Support vectors and Gaussian function fitting, SVs-GFF)的老化预测方法, 预测系统老化趋势, 评估系统的RUL, 以方便系统预运维人员在系统可用状态下计划再生时间, 从而优化系统运行效率, 并避免计划外重大故障的发生.
本文主要工作包括以下4点:
1)通过特征筛选与融合算法提取原始老化数据的统计特征指标, 捕获云服务器老化数据时间序列变化规律;
2)基于支持向量回归(Support vector regression, SVR)方法的稀疏性, 对云服务器老化特征指标进行数据拟合, 得到稀疏化后的SVs序列数据作为预测输入数据, 减少预测模型的计算复杂度;
3)考虑到稀疏化后SVs序列数据存在空间分布不均衡问题, 先对SVs序列数据进行基于密度的聚类, 依据聚类结果对SVs赋予不同权重信息, 再进行老化预测, 避免预测过程陷入局部最优, 提高预测收敛速度;
4)采用基于密度聚类的GFF方法拟合基于不同核函数的SVs序列, 得到对应多条老化曲线, 基于Fréchet距离优化算法选取最优老化曲线, 无需选择模型超参数, 避免人工干预.
图 2 基于SVs-GFF的云服务器老化预测方法框图
图 3 支持向量的空间分布
软件老化预测可以保障软件系统可靠运行, 降低系统风险与损失, 因此该研究问题一直以来受到学术界和工业界的关注. 针对收集到的OpenStack云服务器性能数据, 本文提出基于RUL和SVs-GFF的老化预测方法, 首先提取老化数据的统计特征指标, 采用具有不同核参数的SVR对统计特征指标数据进行稀疏化处理, 获取多组支持向量SVs. 然后使用基于密度聚类的GFF拟合各组支持向量SVs, 得到多条表征云服务器老化状态的老化曲线. 最后通过Fréchet距离优化算法选取最优老化曲线, 评估云服务器老化前的剩余寿命RUL. 实验结果表明, 本文所提老化预测方法, 不依赖于人工经验选取超参数, 提高了预测精度和收敛速度. 本文首次通过剩余使用寿命解决云服务器老化预测问题, 相较于现有基于数据度量的软件老化预测方法, 本文提出的基于RUL的老化预测方法, 可为软件运行维护人员提供软件再生时机, 从而保障系统可靠性.
下一步将研究预测方法对于数据变化情况下的敏感性问题. 使当数据出现急剧变化时, 仍能获得较为精确的预测结果.
作者简介
孟海宁
西安理工大学计算机科学与工程学院副教授. 主要研究方向为机器学习, 故障诊断与预测. 本文通信作者. E-mail: hnmeng@xaut.edu.cn
童新宇
西安理工大学计算机科学与工程学院博士研究生. 主要研究方向为机器学习, 时间序列预测. E-mail: tongxinyu@stu.xaut.edu.cn
谢国
西安理工大学教授. 主要研究方向为数据分析, 故障诊断. E-mail: guoxie@xaut.edu.cn
张贝贝
西安理工大学计算机科学与工程学院讲师. 主要研究方向为数据挖掘, 大数据技术. E-mail: bbzhang115@hotmail.com
黑新宏
西安理工大学计算机科学与工程学院教授. 主要研究方向为机器学习, 系统安全. E-mail: heixinhong@xaut.edu.cn
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-22 21:30
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社