KDD 2024论文分享┆STAMP:一种基于时空图神经网络的微服务工作负载预测方法

论文分享简介

本推文详细介绍了一篇最新论文成果《Integrating System State into Spatio Temporal Graph Neural Network for Microservice Workload Prediction》,论文的作者包括:上海交通大学先进网络实验室: 罗旸、高墨涵、余哲梦,高晓沨教授、陈贵海教授;蚂蚁集团:蔡腾纬、葛昊元。该论文已被(KDD 2024)接收。论文提出了一种基于时空图神经网络(STGNN)的微服务工作负载预测方法(STAMP),来动态预测微服务架构下的资源分配,以提高资源利用率和系统性能。通过在支付宝平台的微服务环境以及两个真实世界数据集上的实验比较,验证了STAMP在预测精度上相较于现有先进时序预测方法平均提高了5.72%。在支付宝云平台的真实线上测试表明 ,STAMP相比现有线上方法能够降低33.10%的计算资源消耗。

原文链接https://dl.acm.org/doi/10.1145/3637528.3671508

1. 会议介绍

第30届国际知识发现与数据挖掘大会(KDD 2024)于2024年8月25日至29日在西班牙巴塞罗那隆重举行。KDD会议起始于1989年,由ACM的数据挖掘及知识发现专委会(ACM SIGKDD)组织,是数据挖掘领域的旗舰学术会议。大会涵盖了数据挖掘、知识发现、数据科学、预测分析等多个技术领域。KDD 2024不仅是学术界的重要事件,也是工业界关注的焦点,吸引了来自全球的顶尖学者、企业代表参与。KDD会议在中国计算机学会(CCF)的推荐中被列为A类顶尖学术会议。

2. 研究背景及主要贡献

在云计算领域,资源利用率的优化一直是提升效率和降低成本的关键。尤其是在微服务架构中,资源分配的不灵活性导致了CPU资源的普遍低效利用。例如Google Cluster Trace数据中的平均CPU利用率不足50%,而支付宝平台的CPU利用率也仅在20%左右。这种低效率不仅限制了系统的性能,也增加了运营成本。为了解决这一问题,论文提出了一种新的微服务工作负载预测方法,旨在通过预测工作负载的变化来动态调整资源分配,从而提高资源利用率。 在支付宝云平台的实践中,论文发现了不同微服务之间的联系:由于用户的访问模式相同,不同微服务的工作负载模式可能趋近相同,如图一所示。

图一:支付宝云平台微服务架构示意图

现有工作负载预测方法,尤其是多变量时间序列预测模型,虽然在一定程度上考虑了工作负载之间的相互依赖性,但往往没有显式地建模微服务间的结构性联系。这种结构性联系对于理解微服务之间的复杂交互和工作负载模式至关重要。为了弥补这一缺陷,论文的主要贡献包括:

1 论文提出了一种新的微服务工作负载预测框架 STAMP ,该框架通过构建基于图的表示来显式地建模微服务之间的结构性联系,从而更准确地捕捉工作负载的动态变化。

2 STAMP 通过整合系统状态信息,进一步增强了对工作负载变化的预测能力。这种方法不仅考虑了工作负载的相似性,还考虑了系统状态对资源利用的影响。

3 论文的实证分析表明, STAMP 在提高预测精度方面具有显著优势,与现有方法相比,平均提高了 5.72% 的预测精度,并且在支付宝平台的实际部署中,实现了资源消耗的 33.10% 降低。

3. 方法

图二: STAMP 整体架构

如图二所示:STAMP框架通过针对性建模微服务的相似性、系统状态的关联性以及时间模式的动态性,提供了一种全面的工作负载预测方法。以下是STAMP的详细工作流程:

1.相似性建模:此模块的目的是捕捉微服务之间的复杂交互和相似性。论文首先将工作负载序列与系统状态输入到该模块中。利用图神经网络,微服务被映射为图中的节点,节点间的边权重根据工作负载和系统状态动态生成,构建出多个图。这些图通过注意力机制融合,形成一个综合的相似性图,从而为模型提供了丰富的结构化信息。图卷积的使用进一步增强了模型对微服务间相似性的理解。

2.系统状态建模:设计此模块的目的是为了理解并整合系统状态变化对微服务工作负载的影响。系统状态指标,例如CPU利用率和响应时间,被集成到工作负载的表示中。这确保了模型能够识别系统状态如何影响服务的工作负载,从而提高预测的准确性和可靠性。

3.动态时间模式建模:此模块的目的是捕捉工作负载随时间变化的周期性和趋势。通过应用快速傅立叶变换(FFT),模型能够识别和提取工作负载数据中的周期性模式。这种对时间动态性的建模对于预测工作负载的未来变化至关重要,因为它允许模型学习到工作负载的长期依赖性。

4.多视图对比学习:最后一个模块的目的是筛选出对工作负载预测最有用的系统状态信息。通过构建包含和不包含系统状态信息的两种视图,模型通过对比学习识别出对预测最为关键的系统状态特征。这种机制帮助模型排除噪声,专注于对预测工作负载变化最有效的信息,从而提高整体预测性能。

通过这四个精心设计的步骤,STAMP框架能够全面地理解和预测微服务的工作负载变化,为微服务架构中的资源管理和优化提供了强有力的支持。

4. 实验结果及可视化

1 )实验数据集: 论文的实验基于三个真实世界的数据集:支付宝平台的微服务工作负载数据集(Ant)、阿里巴巴集群追踪数据集(Ali )和Kubernetes容器工作负载数据集(Fisher)。这些数据集覆盖了不同的微服务架构和运营条件,为论文的模型评估提供了全面的测试环境。

2 )基线对比:为了评估STAMP的性能,论文将其与多种现有的工作负载预测方法进行了比较,包括传统的统计模型(如ARIMA和Prophet)、多变量时间序列预测模型(如FEDformer、Pyraformer、PatchTST等),以及基于时空图神经网络的模型(如MTGNN、ST-HSL、ST-SSL等)。这些基线方法代表了当前微服务工作负载预测领域的先进水平。

表一: STAMP 预测结果对比

3 )对比实验 :在对比实验中,如表一所示,STAMP在所有数据集上均展现出了优越的预测性能。具体来说,在支付宝平台的数据集上,STAMP的RMSE比最接近的基线低5.72%,MAE低3.89%。这些结果表明,STAMP能够有效地捕捉微服务工作负载的动态变化,并提供更准确的预测。论文的结果与文中的结论一致,证明了STAMP在微服务工作负载预测方面的有效性和优越性。

4 )消融实验:论文进行了消融实验来评估STAMP中各个组件的贡献。实验结果如图三所示,图相似性编码模块、系统状态建模模块、动态时间模式编码模块和多视图对比学习模块都是提高预测精度的关键因素。特别是,多视图对比学习模块在去除无关系统状态信息和提高预测准确性方面起到了重要作用。

图三:消融实验结果

5 )线上实验:在支付宝平台的线上A/B测试中,STAMP在实际微服务环境中展现了其预测和资源优化的能力。与现有在线方法相比,STAMP实现了33.10%的资源消耗降低,同时在98.16%的情况下成功避免了CPU溢出的风险。这一结果证明了STAMP在实际应用中的可行性和经济效益。

综上所述,STAMP通过其创新的模型架构和算法设计,在微服务工作负载预测方面取得了显著的性能提升,为微服务架构中的资源管理和优化提供了有力的工具。

5. 总结与展望

论文提出的STAMP框架,针对微服务架构中的工作负载预测问题,通过集成图神经网络和多视图对比学习,有效地提高了预测的准确性。实验结果证明了STAMP在多个真实世界数据集上的优势,特别是在资源利用率提升和成本节约方面的潜力。尽管STAMP已经展现出了显著的性能提升,但论文认为在云服务领域,尤其是针对GPU服务的优化,仍有广阔的探索空间。未来的工作将集中在提高模型的适应性、实时性和可扩展性,以应对日益复杂的服务需求和不断增长的服务规模。

展望未来,论文计划进一步研究如何将STAMP应用于更广泛的云服务场景,包括不同类型和规模的微服务。此外,论文也将探索STAMP在多租户环境中的表现,以及如何与其他资源管理策略相结合,以实现更优的资源分配和服务质量保证。论文相信,通过持续的研究和优化,STAMP将为云服务提供更高效、更智能的资源管理解决方案。

相关推荐
只怕自己不够好3 分钟前
OpenCV 图像运算全解析:加法、位运算(与、异或)在图像处理中的奇妙应用
图像处理·人工智能·opencv
天天扭码26 分钟前
五天SpringCloud计划——DAY2之单体架构和微服务架构的选择和转换原则
java·spring cloud·微服务·架构
凡人的AI工具箱1 小时前
15分钟学 Go 第 60 天 :综合项目展示 - 构建微服务电商平台(完整示例25000字)
开发语言·后端·微服务·架构·golang
果冻人工智能1 小时前
2025 年将颠覆商业的 8 大 AI 应用场景
人工智能·ai员工
代码不行的搬运工1 小时前
神经网络12-Time-Series Transformer (TST)模型
人工智能·神经网络·transformer
石小石Orz1 小时前
Three.js + AI:AI 算法生成 3D 萤火虫飞舞效果~
javascript·人工智能·算法
孤独且没人爱的纸鹤1 小时前
【深度学习】:从人工神经网络的基础原理到循环神经网络的先进技术,跨越智能算法的关键发展阶段及其未来趋势,探索技术进步与应用挑战
人工智能·python·深度学习·机器学习·ai
阿_旭1 小时前
TensorFlow构建CNN卷积神经网络模型的基本步骤:数据处理、模型构建、模型训练
人工智能·深度学习·cnn·tensorflow
羊小猪~~1 小时前
tensorflow案例7--数据增强与测试集, 训练集, 验证集的构建
人工智能·python·深度学习·机器学习·cnn·tensorflow·neo4j
极客代码2 小时前
【Python TensorFlow】进阶指南(续篇三)
开发语言·人工智能·python·深度学习·tensorflow