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

news2024/10/7 14:24:39

开篇

近日,由阿里云计算平台大数据基础工程技术团队主导,与计算平台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.coloradmin.cn/o/941515.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解锁市场进入成功:GTM 策略和即用型示例

在最初的几年里,创办一家初创公司可能会充满挑战。根据美国小企业管理局的数据,大约三分之二的新成立企业存活了两年,几乎一半的企业存活了五年以上。导致创业失败的因素有市场需求缺失、资金短缺、团队不合适、成本问题等。由此,…

Flutter可执行屏幕动画的AnimateView

1.让动画使用起来就像使用widget。 2.可自定义动画。 3.内置平移动画。 演示: 代码: import dart:math; import package:flutter/cupertino.dart;class AnimateView extends StatefulWidget {///子Widgetfinal Widget child;///动画自定义final IAnimate? anim…

什么,一条指令直接黑了数据库!

什么,一条指令直接黑了数据库! shigen最近研究了一下一款渗透工具sqlMap。它一款流行的开源工具,用于自动化SQL注入攻击和渗透测试。它专门设计用于检测和利用Web应用程序中的SQL注入漏洞。SQLMap具有丰富的功能集,可自动检测和利…

工厂方法模式的概述和使用

目录 一、工厂方法模式概述1. 定义2. 使用动机 二、工厂方法模式结构1. 模式结构2. 时序图 三、工厂方法模式的使用实例四、工厂方法模式的优缺点五、工厂方法模式在Java中应用 原文链接 一、工厂方法模式概述 1. 定义 工厂方法模式(Factory Method Pattern)又称为工厂模式&…

高通面临难题,Oryon核心存在问题,高通8cx Gen 4芯片将推迟发布

"高通公司面临难题,可能会导致骁龙8cx Gen 4的发布时间推迟",关于骁龙8cx Gen 4处理器,还有一些其他值得关注的特点和功能。首先,据悉,骁龙8cx Gen 4采用了高通自家研发的Oryon核心架构,这是一项…

春秋云镜 Brute4Road

flag1 fscan扫描发现,6379开放ftp可以匿名登录 这里直接尝试了去打redis但是只有主从复制能成功(这里应该是靶场有设置吧,对6379操作过后再次操作就会显示端口拒绝访问直接重置就可以了) 之后用脚本一把梭哈即可获得shell #更改…

C++ list模拟实现

list模拟实现代码&#xff1a; namespace djx {template<class T>struct list_node{T _data;list_node<T>* _prev;list_node<T>* _next;list_node(const T& x T()):_data(x),_prev(nullptr),_next(nullptr){}};template<class T,class Ref,class Pt…

好用的网页制作工具就是这6个,快点来看!

对于网页设计师来说&#xff0c;好用的网页设计工具是非常重要的&#xff0c;今天本文收集了6个好用的网页设计工具供设计师自由挑选使用。在这6个好用的网页设计工具的帮助下&#xff0c;设计师将获得更高的工作效率和更精致的网页设计效果&#xff0c;接下来&#xff0c;就一…

Android studio APK切换多个摄像头(Camera2)

1.先设置camera的权限 <uses-permission android:name"android.permission.CAMERA" /> 2.布局 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"and…

vue过渡及动画

文章目录 前言类名使用自己定义动画样式多个元素过渡使用第三方库 前言 对于vue中的过渡与动画&#xff0c;官网上是这样概述的&#xff1a; Vue 在插入、更新或者移除 DOM 时&#xff0c;提供多种不同方式的应用过渡效果。包括以下工具&#xff1a; 在 CSS 过渡和动画中自动…

基于空洞卷积DCNN与长短期时间记忆模型LSTM的dcnn-lstm的回归预测模型

周末的时候有时间鼓捣的一个小实践&#xff0c;主要就是做的多因子回归预测的任务&#xff0c;关于时序数据建模和回归预测建模我的专栏和系列博文里面已经有了非常详细的介绍了&#xff0c;这里就不再多加赘述了&#xff0c;这里主要是一个模型融合的实践&#xff0c;这里的数…

避雷!教你正确区分流量卡,不看可别后悔!

分不清真假流量卡&#xff1f; 想要手机流量卡&#xff0c;不小心买到了物联卡&#xff0c;结果被商家割了韭菜&#xff1f; 对于流量卡的套路太多了&#xff1f;你是否还傻傻分不清楚&#xff0c;今天&#xff0c;这篇文章教你正确区分这两种不同类型的卡。 ​ 赶紧收藏&am…

文件重命名与隐藏编号一键搞定!让不同类型的文件整齐有序

大家好&#xff01;在整理和管理不同类型的文件时&#xff0c;我们经常遇到文件名不规范、编号杂乱的情况&#xff0c;使得文件整体显得混乱无序。为了帮助您达到整齐有序的效果&#xff0c;我们自豪地推出了一款高效的工具——文件重命名与隐藏编号软件&#xff01;让您能够轻…

Redis进阶 - JVM进程缓存

原文首更地址&#xff0c;阅读效果更佳&#xff01; Redis进阶 - JVM进程缓存 | CoderMast编程桅杆https://www.codermast.com/database/redis/redis-advance-jvm-process-cache.html 传统缓存的问题 传统的缓存策略一般是请求到达 Tomcat 后&#xff0c;先查询 Redis &…

Qt开发实例_实时监测磁盘剩余空间

一、前言 当计算机磁盘空间不足,会导致应用程序无法继续存储数据,导致错误和不稳定的情况。所以,实时检测磁盘空间剩余大小对于许多应用程序来说都非常重要。 这种需求在许多应用程序中都存在,例如文件管理器、图像编辑器、视频播放器、云存储服务等等。在这些应用程序中…

Python+Appium自动化测试-编写自动化脚本

之前已经讲述怎样手动使用appium-desktop启动测试机上的app&#xff0c;但我们实际跑自动化脚本的过程中&#xff0c;是需要用脚本调用appium启动app的&#xff0c;接下来就尝试写Python脚本启动app并登陆app。环境为Windows10 Python3.7 appium1.18.0 Android手机 今日头条…

Apex导航菜单权限动态分配的实现

改动之处 return is_have_permission_wxx(V(WXX_USER_ID), 2,V(WXX_ROLE_ID)); 改之后 return is_have_permission_wxx(V(USER_ID), 2,V(ROLE_ID)); 创建新的动态菜单“动态菜单1” 共享组件→列表→创建→动态 selectlevel,m1.NAME label,f?p&||APP_ID.:||m1.…

17-会话机制

cookie 和 session cookie存储在本地 session是在服务器端进行用户信息的保存,一个字典 Cookie: # 1. 设置 : 通过response对象设置response redirect(xxx)response render_template(xxx)response Response(xxx)response make_response(xxx)response jsonify(xxx)# 通过…

xxl-job学习(一篇文章解决)

前言&#xff1a;学习xxl-job需要有git&#xff0c;springboot的基础&#xff0c;学起来就很简单 xxl-job是一个分布式的任务调度平台&#xff0c;其核心设计目标是&#xff1a;学习简单、开发迅速、轻量级、易扩展&#xff0c;现在已经开放源代码并接入多家公司的线上产品线&a…

详解过滤器Filter和拦截器Interceptor的区别和联系

目录 前言 区别 联系 前言 过滤器(Filter)和拦截器(Interceptor)都是用于在Web应用程序中处理请求和响应的组件&#xff0c;但它们在实现方式和功能上有一些区别。 区别 1. 实现方式&#xff1a; - 过滤器是基于Servlet规范的组件&#xff0c;通过实现javax.servlet.Filt…