【VLDB 2023】基于预测的云资源弹性伸缩框架MagicScaler,实现“高QoS,低成本”双丰收

开篇

近日,由阿里云计算平台大数据基础工程技术团队主导,与计算平台MaxCompute团队、华东师范大学数据科学与工程学院、达摩院合作,基于预测的云计算平台资源弹性伸缩框架论文《MagicScaler: Uncertainty-aware, Predictive Autoscaling 》被数据库领域顶会VLDB 2023接收。

MagicScaler论文提出了一种创新的基于预测的云资源主动弹性伸缩框架 MagicScaler,该框架主要包含一个基于多尺度注意力高斯过程的预测模型和一个考虑需求不确定性的弹性伸缩优化决策器。论文在阿里云云原生大数据计算服务MaxCompute 3个集群的真实数据集上进行了实验,综合成本和QoS两个层面,MagicScaler要显著优于其他经典的弹性伸缩算法,实现了“高QoS(Quality of Service),低成本”的双丰收。

背景

云计算需求的日益发展,基于用户需求合理地进行云资源分配是保障稳定性和控制成本的重要因素。图1所示是三种易于理解的扩缩容策略,保守(Conservative)策略会提供“保守、虚高”的 ECS 供应量,但会造成较高的资源浪费;被动(Passive)策略是用户的需求到达后才执行扩缩容决策,会由于资源“冷启动”问题导致 QoS 违约的风险;为集成这两种策略的优点,预测式自动扩缩容(Predictive Autoscaling)策略可以理解为“提前知道用户需求”后执行扩缩容决策,这将最有可能作为实现图 1 中理想境况的途径。

1.png

图 1:三种易于理解的 AutoScaling 策略:a) 保守策略:高成本,低 QoS 风险;b) 被动策略:较低成本,高 QoS 风险;c) 理想策略:低成本,低 QoS 风险。

现有的自动扩缩框架主要基于控制理论、强化学习、排队理论或基于规则生成扩所容决策,这些方法要么仅使用了较为简单的预测算法,如历史一段时间的平均需求,并未考虑需求可能存在的周期性以及需求的不确定性,使得预测精度不高,且难以应对需求的多变性。部分现有研究仅以启发式方法处理需求的不确定性,难以得到稳健的扩缩容决策。理想的扩缩容框架需要在预测和扩缩容决策阶段都充分考虑需求的不确定性。此外,现有的自动扩缩容框架并未考虑云资源弹性伸缩场景中的一些业务属性和真实约束,例如弹性资源在扩缩容阶段会经历的冷启动、退回成本,云平台场景下QoS和成本之间的权衡约束等,因此现有的这些自动扩缩容框架难以直接应用于阿里云计算平台的弹性伸缩场景中。

挑战

云计算需求的日益发展,基于用户需求合理地进行云资源分配是保障稳定性和控制成本的重要因素。图2展示了阿里云云原生大数据计算服务某个集群在不同数据粒度下的资源请求情况(数据已作脱敏处理),可以看出云上用户需求往往具有高度复杂性、不确定性和粒度敏感的时间依赖性,这给未来需求的准确预测带来了一定困难,也使得主动弹性伸缩更具挑战性。一个好的主动弹性伸缩策略需要在考虑需求不确定性的同时,保持云平台低运行成本和高QoS之间的合理平衡。

2.png

图2 某集群不同数据粒度下的资源请求情况

破局

本文提出了一种创新的基于预测的云资源弹性伸缩框架 MagicScaler。该框架主要包含一个基于多尺度注意力高斯过程的预测模型和一个考虑需求不确定性的弹性扩缩容优化决策器,以实现“高QoS(Quality of Service),低成本”双丰收的目标。图3描述了 MagicScaler 的整体框架,包含预测器和调度器两部分。

3.png

图3 MagicScaler整体框架

(1)预测器: 预测器部分主要构建了基于多尺度注意力机制的高斯回归预测模型。该预测模型设计有机融合了两种高效的预测策略:一是多尺度注意力机制,能够捕捉复杂的多尺度特征;二是随机过程回归,以量化预测结果不确定性。 这使得预测模型可以实现精确的需求预测,结合量化的不确定性为后续的弹性伸缩打下基础。
在这里插入图片描述

4.png

图4 预测器流程

(2)调度器: 调度器部分设计了基于预测结果和量化不确定性的弹性扩缩容优化决策器。将复杂业务场景建模为马尔可夫决策(MDP)过程,并利用滚动时域优化的方法近似求解最优策略,实现了资源成本与 QoS 违规风险之间的灵活平衡。图5展示了调度器流程,包括马尔可夫决策过程(MDP)、优化器和弹性伸缩决策执行器。我们的弹性伸缩器以概率需求预测分布作为输入,将弹性伸缩问题建模为马尔可夫决策过程。因为考虑到MDP优化是一个无限域贝尔曼方程优化问题,我们使用滚动时域优化策略,将贝尔曼方程在无限时域内的求解转换为有限时域内的随机规划,从而使得能够找到最佳策略来近似贝尔曼方程的最优解。

图5 调度器流程

论文在阿里云云原生大数据计算服务MaxCompute 3个集群的真实数据集上进行了实验,综合成本和QoS两个层面,MagicScaler要显著优于其他经典的弹性伸缩算法,更多实验结果请参阅我们的论文原文。

应用

后续将进一步研究如何将MagicScaler技术与MaxCompute现有调度策略结合。

  • 论文标题:MagicScaler: Uncertainty-aware, Predictive Autoscaling
  • 论文作者:潘志诚,王益杭,张颖莹,杨斌,程云爻,陈鹏,郭晨娟,文青松,田西夺,窦云亮,周志强,杨程程,周傲英,杨彬

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/110629.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习之反卷积

具体推理可以参考https://blog.csdn.net/zhsmkxy/article/details/107073350

SpringBoot中间件ElasticSearch

Elasticsearch是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的 全文搜索引擎 ,基于RESTful web 接口。 Elasticsearch 是用 Java 语言开发的,并作为 Apache 许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elastics…

【力扣每日一题】2023.8.24 统计参与通信的服务器

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 题目顾名思义,要我们统计参与通信的服务器,给我们一个二维矩阵,元素为1的位置则表示是一台服务器。 …

ChatGPT Prompting开发实战(二)

一、基于LangChain源码react来解析prompt engineering 在LangChain源码中一个特别重要的部分就是react,它的基本概念是,LLM在推理时会产生很多中间步骤而不是直接产生结果,这些中间步骤可以被用来与外界进行交互,然后产生new con…

Leetcode 易错题整理(一)5. 7. 11. 15. 33. 34

5. 最长回文子串 给你一个字符串 s,找到 s 中最长的回文子串。 如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。 示例 1: 输入:s "babad" 输出:"bab" 解释:"aba&q…

4. 池化层相关概念

4.1 池化层原理 ① 最大池化层有时也被称为下采样。 ② dilation为空洞卷积,如下图所示。 ③ Ceil_model为当超出区域时,只取最左上角的值。 ④ 池化使得数据由5 * 5 变为3 * 3,甚至1 * 1的,这样导致计算的参数会大大减小。例如1080P的电…

NVIDIA DLI 深度学习基础 答案 领取证书

最后一节作业是水果分类的任务,一共6类,使用之前学习的知识在代码段上进行填空。 加载ImageNet预训练的基础模型 from tensorflow import kerasbase_model keras.applications.VGG16(weights"imagenet",input_shape(224, 224, 3),include_t…

基于数据湖的多流拼接方案-HUDI实操篇

目录 一、前情提要 二、代码Demo (一)多写问题 (二)如果要两个流写一个表,这种情况怎么处理? (三)测试结果 三、后序 一、前情提要 基于数据湖对两条实时流进行拼接&#xff0…

Viobot基本功能使用及介绍

设备拿到手当然是要先试一下效果的,这部分可以参考本专栏的第一篇 Viobot开机指南。 接下来我们就从UI开始熟悉这个产品吧! 1.状态 设备上电会自动运行它的程序,开启了一个服务器,上位机通过连接这个服务器连接到设备&#xff0c…

面试现场表现:展示你的编程能力和沟通技巧

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

成功项目风险预防可控的5个重点

成功的项目往往重视项目风险的预防和管控,这样有利于可能风险的及时控制和解决,将其不利影响降到最小。如果不重视对风险的预防和管控,不及时发现和处理项目风险,那么项目风险往往会为我们带来意想不到的不利后果,往往…

【IMX6ULL驱动开发学习】12.Linux SPI驱动实战:DAC驱动设计流程

基础回顾: 【IMX6ULL驱动开发学习】10.Linux I2C驱动实战:AT24C02驱动设计流程_阿龙还在写代码的博客-CSDN博客 【IMX6ULL驱动开发学习】11.Linux之SPI驱动_阿龙还在写代码的博客-CSDN博客 一、编写驱动 查看芯片手册,有两种DAC数据格式&a…

安防监控视频平台EasyCVR视频汇聚平台调用接口出现跨域现象的问题解决方案

视频监控汇聚EasyCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有GB28181、RTSP/Onvif、RTMP等,以及厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等,能对外分发RTSP、RTMP、FLV、HLS、WebRTC等格式的视…

08 通过从 库1 复制 *.ibd 到 库2 导致 mysql 启动报错

前言 呵呵 最近同事有这样的一个需求 需要将 库1 的一张表 复制到 库2 然后 我想到了 之前一直使用的通过复制这个库的 data 文件来进行数据迁移的思路, 是需要复制这个 库对应的 data 目录下的数据文件, 以及 ibdata1 文件 然后 我又在想 这里的场景能否也使用这里的额方式…

重生c++系列之类与对象(中篇)

好的继上期,我们今天带来c类与对象系列的继续学习。 类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类。 空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员 函数。 …

Hbase文档--架构体系

阿丹: 基础概念了解之后了解目标知识的架构体系,就能事半功倍。 架构体系 关键组件介绍: HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起…

将NiceGUI应用程序打包成EXE文件

将NiceGUI应用程序打包成EXE文件 NiceGUI是一个简单易用的Python库,用于创建基于文本的用户界面。在本教程中,我们将学习如何将NiceGUI应用程序打包成可执行文件(EXE)。 步骤1:安装依赖项 首先,我们需要…

Oracle 本地客户端连接远程 Oracle 服务端并使用 c# 连接测试

这里写自定义目录标题 前言Oracle 客户端安装先决条件下载 Oracle 客户端Oracle 客户端环境变量配置 PL/SQLPL/SQL 下载PL/SQL 配置 配置远程连接tnsnames.ora 文件配置 使用 PL/SQL 连接远程数据库使用 C# 远程访问 Oracle 数据库结语 前言 最近有一个需要使用本地的 Oracle …

融云 CallPlus SDK 上线!1V1 音视频、远程服务类应用的实现利器

点击报名,9 月 21 日融云直播课 近期,融云新一代音视频通话场景化 SDK CallPlus 将正式上线!关注【融云全球互联网通信云】了解更多 融云 CallPlus 完整封装了拨打、振铃、接听、挂断等整套呼叫流程,支持一对一及群组多人音视频通…

深度图相关评测网站

文章目录 1 单目/Stereo相关测评网站介绍12 单目/Stereo相关测评网站介绍23 单目/Stereo相关测评网站介绍3 1 单目/Stereo相关测评网站介绍1 https://vision.middlebury.edu/stereo/eval3/ 2 单目/Stereo相关测评网站介绍2 http://www.cvlibs.net/datasets/kitti/eval_stereo…