0基础读顶会论文—面向应用的云工作负载预测:调查和新视角
Abstract
准确的工作负载预测对于云用户和提供商来说非常有价值,因为它可以有效指导许多实践,例如性能保证、降低成本和能耗优化。然而,由于工作负载的复杂性和动态性,云工作负载预测非常具有挑战性,并且已经提出了各种解决方案来增强预测行为,与现有调查不同,我们首次从一个新的角度,即面向应用而非预测方法本身,对工作负载预测的发展格局进行全面梳理和分析。具体来说,我们首先介绍工作负载预测的基本特征,然后根据云应用程序的两个显着特征:可变性和异构性对现有工作进行分析和分类
1 Introduction
由于云环境的动态性、用户请求和服务的多样性以及云资源的弹性配置,资源管理面临着巨大的挑战:排队时间长,性能不稳定,资源竞争,资源空闲,能耗高
为解决上述问题,下图展示了用于实施 IT 运营人工智能 (AIOps) 的主动框架
其中AIOps框架(位于Cloud platform层)
Monitoring(监控):
由监控中心(Monitor center)负责收集系统运行状态和性能数据。
Analysis(分析):
Workload predictor(工作负载预测器):预测未来的负载情况。
SLA analyzer(SLA分析器):分析服务是否满足服务水平协议(SLA)。
Planning(规划):
Decision maker(决策者):基于预测和分析结果,制定资源配置和优化计划。
Execution(执行):
Executor(执行者):根据决策者的计划执行具体的资源调整。
2 Basic Characteristic
2.1 Predicted Targets 预测目标
主要考虑以下两种
请求工作负载:外部访问请求(http请求、api调用等)和 内部系统调用(应用系统内不同组件或服务相互调用而产生的请求)
资源工作负载:常规资源,包括CPU、内存、磁盘和网络带宽
2.2 Modeling Technologies 建模技术
统计方法:移动平均(MA)、自回归(AR)、指数平滑(ES)、自回归积分移动平均(ARIMA)、季节性自回归积分移动平均(SARIMA)方法等
ML:线性回归(LR)、逻辑回归(LoR)、支持向量机(SVM)、K近邻(KNN)、朴素贝叶斯(NB)、决策树( DT)、随机森林(RF)等
DL:人工神经网络(ANN)、极限学习机(ELM)、循环神经网络(RNN)、长短期记忆网络(LSTM)、门控循环单元网络(GRU)、卷积神经网络(CNN)和时间卷积神经网络(TCN)
RL:Q-Learning、深度Q网络(DQN)等
2.3 Evaluation Metrics 评估指标
以下是直接指标
1.平均绝对误差 (MAE):\(\begin{equation*} \text{MAE} =\frac{\sum_{t=1}^{m}\vert y_{t}-\hat{y}_{t}\vert }{m} \tag{1} \end{equation*}\)
2.均方误差 (MSE):\(\begin{equation*} \text{MSE} =\frac{\sum_{t=1}^{m}\vert y_{t}-\hat{y}_{t}\vert ^{2}}{m} \tag{2} \end{equation*}\)
3.均方根误差 (RMSE):\(\begin{equation*} \text{RMSE}=\sqrt{\text{MSE}}=\sqrt{\frac{\sum_{t=1}^m\left\vert y_t-\hat{y}_t\right\vert^2}{m}} \tag{3} \end{equation*}\)
4.平均绝对百分比误差 (MAPE):\(\begin{equation*} \text { MAPE }=\frac{1}{m} \sum_{t=1}^m\left\vert\frac{y_t-\hat{y}_t}{y_t}\right\vert \tag{4} \end{equation*}\)它是一种相对误差测量,使用绝对值来防止正误差和负误差相互抵消。
5.决定系数 (R2):\(\begin{equation*} R^{2}= \frac{\Sigma_{t=1}^{m}\vert \hat{y}_{t}-\overline{y}_{t}\vert ^{2}}{\Sigma_{t=1}^{m}\vert y_{t}-\overline{y}_{t}\vert ^{2}} \tag{5} \end{equation*}\)残差平方和与总平方和的比值
基于分类的工作负载预测模型:让我们首先定义以下四个基本分类指标:
1.真阳性 (TP):真实值为正且预测也为正的样本数量。
2.误报 (FP):真实值为负且预测为正的样本数量。
3.真阴性 (TN):真实值为负并且预测也为负的样本数量。
4.假阴性 (FN):真实值为正且预测为负的样本数量。
可以得到以下评价指标:
1.准确性:\(\begin{equation*} \text { Accuracy }=\frac{\text{TP}+\text{TN}}{\text{TP}+\text{TN}+\text{FP}+\text{FN}} \tag{6} \end{equation*}\),它是正确预测的样本数与所有样本数的比值
2.精度:\(\begin{equation*} \text { Precision }=\frac{\text{TP}}{\text{TP}+\text{FP}} \tag{7} \end{equation*}\),是正确预测为阳性的样本数与所有预测为阳性的样本数的比率
3.召回:\(\begin{equation*} \text { Recall }=\frac{\text{TP}}{\text{TP}+\text{FN}} \tag{8} \end{equation*}\),它是正确预测为阳性的样本数与所有真阳性样本数的比率
4.F1 分数:\(\begin{equation*} \text { F1 Score }=\frac{2 \times \text { Precision } \times \text { Recall }}{\text { Precision }+ \text { Recall }} \tag{9} \end{equation*}\),它是精确率和召回率的调和平均值。 F1 分数越高,表明模型具有更好的平衡精度和召回率。
以下还有一些间接指标:执行时间,吞吐量,成功率,SLA 违反率,资源利用,线程数,成本(资源,违规,管理),利润,能源消耗
2.4 数据集
谷歌集群数据:它跟踪来自 Google 集群管理系统(也称为 Borg)的数据。
阿里巴巴集群数据:它跟踪来自阿里巴巴生产集群的数据并包含有关作业/应用程序的详细信息。
微软Azure跟踪:它跟踪 Microsoft Azure 系统的数据,包括虚拟机 (VM) 跟踪和 Azure Function 跟踪。
WS-Dream:它维护三个数据集:(1) QoS 数据集, (2) 日志数据集,以及 (3) 评论数据集。
Wikipedia Pagccounts-Raw:它是对维基百科服务器发出的 Web 请求、中断以及可能影响跟踪的服务器问题的跟踪。
Docker Registry Trace Player:它用于重播注册表的匿名生产级跟踪。这些痕迹来自 IBM docker 注册表。
Grid Workloads Archive:它是多个网格的使用痕迹的存储库。
Failure Trace Archive:它是并行和分布式系统可用性跟踪的存储库。
Planetlab Workload Traces:它是随机 10 天期间从 PlanetLab VM 收集的一组 CPU 使用率跟踪数据。
Parallel Workloads Archive:它是高性能计算 (HPC) 机器的工作负载跟踪和模型的集合。
Lublin-Feitelsont:它是超级计算机中并行任务的模型。
Pegasus Synthetic Workflows:它是 20 个综合工作流应用程序的分析数据,每个应用程序都有不同的大小选项。
Fisher:它是来自真实 Kubernetes 系统的资源和性能指标的集合,在 30 天内记录了 10 个容器。
3 Application-Oriented Workload Prediction 面向应用的工作负载预测
3.1 工作负载可变性
3.1.1 高波动
与 HPC 系统和网格计算不同,云应用程序的交互性更强,工作负载的变化也更大。它们的平均噪声几乎是网格计算的 20 倍
1.线性分析
研究人员基于对历史数据的统计分析以拟合统计模型,提出了 MA、AR、ES、ARIMA 和 SARIMA 的解决方案。
2.非线性分析
测试了KNN、ANN、RF、SVM等机器学习算法,证实RF具有最高的预测精度,提出了一种基于改进的 LSTM 的工作负载预测方法,通过拼接 BiLSTM 和 GridLSTM 生成新的 RNN 架构,利用深度 Q 学习进行联合云工作负载预测,这是一种提取潜在模式并优化 VM 资源分配的模型等
3.1.2 模式多样
新的工作负载模式总是随着用户行为、应用程序和环境的演变而出现。此外,非静态工作负载呈现出随时间变化的不同模式,更频繁地重新生成模型并相应增加开销
因此,集成预测方法已逐渐应用于云工作负载预测,提出了一种集成特征选择和八种机器学习方法的预测方法 REAP,以获得优异的预测精度,提出了一种基于 ARIMA 和 ANN 的混合模型来预测 CPU 和内存利用率。 ARIMA 检测线性分量,ANN 使用 ARIMA 导出的残差分析非线性分量等
3.2 工作负载异构性
3.2.1 预测目标
1.请求工作负载
提出了一种基于ANN的工作负载预测模型
2.资源工作负载
提出了一种基于多元时间序列的多属性资源分配工作负载预测框架,并建立了 BiLSTM 模型来预测多种资源的供应和利用
3.2.2 组织结构
随着应用程序从整体架构到面向服务的架构,再到微服务架构的演变,研究人员探索工作负载预测模型如何结合应用程序的结构特征。
1.独立分析
研究人员仅关注应用程序本身的工作负载变化进行建模。提出了一种考虑自适应滑动窗口和时间局部性集成的集成工作负载预测模型
2.相关分析
面对分布式或分层应用,研究人员通过分析一个应用中不同组件的工作负载变化来设计预测方法。提出了一种基于深度学习的端到端工作负载预测方法,并创造性地提出了工作负载群体行为的概念
3.大规模分析
大型云应用程序可能有数千个实例。平衡预测精度和模型开销已成为大规模工作负载预测的严峻挑战。提出了一种特征选择方法来减少预测模型的推理时间
3.2.3 运行类型
1.集群/数据中心粒度
提出了一种基于群体优化算法的树层次深度卷积神经网络,提出了一种具有三维自适应能力的改进自适应差分进化(AADE)学习算法,并将其应用于训练用于数据中心工作负载预测的神经网络
2.PM/VM粒度
SARIMA在长期任务中表现优于LSTM,但在短期任务中表现较差
3.容器粒度
随着虚拟化技术的不断完善,很多应用已经从传统的基于PM/VM的部署转变为基于Serverful的容器部署
提出了ARIMA和三重指数平滑的混合模型,分别负责挖掘和预测容器资源工作负载序列中的线性和非线性关系
4.Serverless实例粒度
提出了一种基于概率的无服务器应用程序工作负载预测和预热模型,该模型基于快速傅里叶变换来预测特定时间间隔内函数是否会被调用和并发,并指导函数预热和保存
4 ntegration With Resource Management 与资源管理集成
4.1 主动容量规划
规划应用程序的云基础设施容量是一个关键问题,可能会带来显着的服务改进、成本节约和环境可持续性。
出了云数据中心的容量规划系统,该系统提引入了场景组合的概念,允许探索异构可能的拓扑和资源,以及水平和垂直资源扩展
4.2 主动应用部署
应用程序部署使应用程序实例能够放置在云基础设施上,这通常决定了应用程序的初始位置。主动部署有助于防止共置应用程序进入不良状态,例如资源争用和浪费
提出了一种容器化任务部署算法,通过部署共置容器来优化服务器资源利用率。它采用K-means算法对历史轨迹进行任务分类,参考CPU使用率、内存消耗、磁盘存储、网络带宽等工作负载维度。
4.3 主动请求调度
有效的流量感知可以指导用户请求的主动调度
提出了一种利用数据聚类实现弹性任务调度的方法。使用ARIMA预测每个类簇中的任务数量,为资源配置提供参考。然后,所提出的节能资源分配方法动态地为每个集群中的任务提供资源
4.4 主动资源分配
资源分配本质上是短期容量规划,这是从已安装的容量中配置和分配资源的过程。在运行时为应用程序分配适当的资源是一个关键问题,因为云计算是一种按需分配和按需付费的模型。
为无服务器工作流应用程序设计了内存分配优化模型SLAM。它使用分布式跟踪来识别函数之间的关系并估计不同内存配置的工作流执行时间
4.5 主动弹性伸缩
弹性是云计算模型为应用程序提供的一个关键特性 [105] ,其中水平和垂直缩放及其组合的变体是常见的实现操作。主动弹性伸缩可以提前增减资源,减少资源伸缩时间的影响,保证高质量的服务和成本效率。
提出了一种基于 Kubernetes 的扩展系统,其中包括基于 BiLSTM 的具有注意力机制的工作负载预测算法和强化学习方法,以实现被动式和主动式扩展
4.6 主动动态迁移
应用迁移本质上是动态应用部署,动态调整应用实例与基础设施之间的映射。因此,需要实现应用程序从源位置到目标位置的转换。
出了一种基于工作负载预测的虚拟机迁移策略来提高能源效率。 利用神经网络进行工作负载预测,并根据提出的 Harris Hawks Spider Monkey Optimization 执行虚拟机迁移,其中决策过程考虑功率、工作负载和资源参数。
5. Future Direction 未来方向
大规模工作负载预测,无服务器实例的工作负载预测,多拓扑指导工作负载预测,应用于工作负载预测的大型模型,模型的可解释性,模型不可靠性