【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:三种易于理解的 AutoScaling 策略:a) 保守策略:高成本,低 QoS 风险;b) 被动策略:较低成本,高 QoS 风险;c) 理想策略:低成本,低 QoS 风险。
现有的自动扩缩框架主要基于控制理论、强化学习、排队理论或基于规则生成扩所容决策,这些方法要么仅使用了较为简单的预测算法,如历史一段时间的平均需求,并未考虑需求可能存在的周期性以及需求的不确定性,使得预测精度不高,且难以应对需求的多变性。部分现有研究仅以启发式方法处理需求的不确定性,难以得到稳健的扩缩容决策。理想的扩缩容框架需要在预测和扩缩容决策阶段都充分考虑需求的不确定性。此外,现有的自动扩缩容框架并未考虑云资源弹性伸缩场景中的一些业务属性和真实约束,例如弹性资源在扩缩容阶段会经历的冷启动、退回成本,云平台场景下QoS和成本之间的权衡约束等,因此现有的这些自动扩缩容框架难以直接应用于阿里云计算平台的弹性伸缩场景中。
挑战
云计算需求的日益发展,基于用户需求合理地进行云资源分配是保障稳定性和控制成本的重要因素。图2展示了阿里云云原生大数据计算服务某个集群在不同数据粒度下的资源请求情况(数据已作脱敏处理),可以看出云上用户需求往往具有高度复杂性、不确定性和粒度敏感的时间依赖性,这给未来需求的准确预测带来了一定困难,也使得主动弹性伸缩更具挑战性。一个好的主动弹性伸缩策略需要在考虑需求不确定性的同时,保持云平台低运行成本和高QoS之间的合理平衡。

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

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


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

图5 调度器流程
论文在阿里云云原生大数据计算服务MaxCompute 3个集群的真实数据集上进行了实验,综合成本和QoS两个层面,MagicScaler要显著优于其他经典的弹性伸缩算法,更多实验结果请参阅我们的论文原文。
应用
后续将进一步研究如何将MagicScaler技术与MaxCompute现有调度策略结合。
- 论文标题:MagicScaler: Uncertainty-aware, Predictive Autoscaling
- 论文作者:潘志诚,王益杭,张颖莹,杨斌,程云爻,陈鹏,郭晨娟,文青松,田西夺,窦云亮,周志强,杨程程,周傲英,杨彬
相关文章:
【VLDB 2023】基于预测的云资源弹性伸缩框架MagicScaler,实现“高QoS,低成本”双丰收
开篇 近日,由阿里云计算平台大数据基础工程技术团队主导,与计算平台MaxCompute团队、华东师范大学数据科学与工程学院、达摩院合作,基于预测的云计算平台资源弹性伸缩框架论文《MagicScaler: Uncertainty-aware, Predictive Autoscaling 》被…...
Node爬虫项目精简版 wallhaven网站实操 2023.8.29
练习地址: https://wallhaven.cc/toplist const express require(express); const axios require(axios); const cheerio require(cheerio); const schedule require(node-schedule); const fs require(fs);async function downloadImage(url) {const response…...
Vue统计图表的数据标签和数值显示技巧
Vue统计图表的数据标签和数值显示技巧 在开发Web应用程序时,统计图表是非常重要的数据呈现方式。Vue是一种流行的JavaScript框架,它提供了许多方便的功能来处理和展示数据。在这篇文章中,我们将探讨如何使用Vue来添加数据标签和数值显示到统…...
Linux 虚拟机同步时间crontab以及crond详解
目录 一 Linux 虚拟机同步时间设置 1. 检查是否安装cron服务(即时间同步器) 2. 下载时间同步器 3. 编辑crontab 内容 4. 同步更新电脑网络时间 5.设置 reload 6. 查看 crond 状态 二 crond 详解 1. 启动/关闭cron服务 2. crontab命令格式 3. …...
springmvc没有绿标,怎么配置tomcat插件运行?
一、添加插件后,刷新,自动从maven仓库下载tomcat插件 二、写好项目后,添加tomcat配置 三、即可点击绿标运行...
设计模式--模板方法模式(Template Method Pattern)
一、什么是模板方法模式(Template Method Pattern) 模板方法模式(Template Method Pattern)是一种行为型设计模式,它定义了一个算法的骨架,将一些步骤的实现延迟到子类中。模板方法模式允许在不改变算法的…...
linux 权限管理命令
权限管理命令 权限的查看及含义 可以使用ls -l来查看每个文件或目录的权限,一共有十位 ls -ls--------------------------------------------------------------------rw-------. 1 root root 946 Feb 14 16:13 anaconda-ks.cfgdrwxr-xr-x. 2 root root 4096 Feb…...
c++ qt--线程(一)(第八部分)
c qt–线程(一)(第八部分) 一.进程(Process) 在任务管理器中的进程页下,可以看到进程,任务管理器将进程分为了三类,应用、后台进程、window进程 应用: 打开…...
参数初始化方法
梯度消失与梯度爆炸 考虑一个 3 层的全连接网络。 H 1 X W 1 H{1}X \times W{1} H1XW1, H 2 H 1 W 2 H{2}H{1} \times W{2} H2H1W2, O u t H 2 W 3 OutH{2} \times W_{3} OutH2W3 其中第 2 层的权重梯度如下: Δ W 2 ∂ L o s s …...
Go的基础运行方式和打包
目录 基础运行方式导入路径 打包技巧相关知识点 基础运行方式 // 文件名可以不是main,但包名和入口函数比如是main // main.go package main // 导入包的时候可以直接导入,也可以导入后指定包名, import ("fmt"godemo "githu…...
Deepin 图形化部署 Hadoop Single Node Cluster
Deepin 图形化部署 Hadoop Single Node Cluster 升级操作系统和软件 快捷键 ctrlaltt 打开控制台窗口 更新 apt 源 sudo apt update更新 系统和软件 sudo apt -y dist-upgrade升级后建议重启 开启ssh服务 打开资源管理器 进入系统盘 找到 etc 目录 在系统盘的 etc 目录上 右键…...
23款奔驰GLS400升级柏林之声音响系统,体验不一样的感觉
Burmester 环绕立体声音响系统–为每位乘员打造令人印象深刻的音质13个高性能扬声器、总功率为590瓦的9声道数字信号处理器(DSP)放大器以及放大器/扬声器系统专为车辆配置,打造出一流的Burmester之音。必要时还可进一步提升令人印象深刻的听觉体验。声音环绕功能能够…...
Vue的map()方法和filter()方法的使用
map() map():方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值 案例: const data res.map(item > item.id); const data res.map(item > return item.id); const data res.map(item > { name: item.name, id…...
qt创建临时文件
1、临时文件系统 在 Linux 系统中,创建临时文件系统很简单,执行如下指令即可: mount -t tmpfs -o size1024m tmpfs /mnt/tmp 挂载成功后,在 /mnt/tmp 这个挂载点下创建的所有文件都将会是临时文件, 也就是说:当电脑关…...
Element——table排序,上移下移功能。及按钮上一条下一条功能
需求:table排序,可操作排序上移下移功能。判断第一行上移禁用和最后一行下移禁用,排序根据后端返回的字段 <el-table:data"tableData"style"width: 100%"><el-table-column type"index" label"序…...
无涯教程-Android - Linear Layout函数
Android LinearLayout是一个视图组,该视图组将垂直或水平的所有子级对齐。 Linear Layout - 属性 以下是LinearLayout特有的重要属性- Sr.NoAttribute & 描述1 android:id 这是唯一标识布局的ID。 2 android:baselineAligned 此值必须是布尔值,为…...
ELK安装、部署、调试(六) logstash的安装和配置
1.介绍 Logstash是具有实时流水线能力的开源的数据收集引擎。Logstash可以动态统一不同来源的数据,并将数据标准化到您选择的目标输出。它提供了大量插件,可帮助我们解析,丰富,转换和缓冲任何类型的数据。 管道(Logs…...
【Spring Security】UserDetails 接口介绍
文章目录 UserDetails 的作用UserDetails 接口中各个方法详解 UserDetails 的作用 UserDetails 在 Spring Security 框架中主要担任获取用户信息的接口,通过该接口就能拿到用户的信息和验证用户的信息,这些信息在下面的方法中会有讲述。 UserDetails 接…...
C# Linq源码分析之Take(四)
概要 本文主要对Take的优化方法进行源码分析,分析Take在配合Select,Where等常用的Linq扩展方法使用时候,如何实现优化处理。 本文涉及到Select, Where和Take和三个方法的源码分析,其中Select, Where, Take更详尽的源码分析&…...
Python 和 C++ 使用细节差别
1. 循环中的可迭代对象长度 1. 循环中的可迭代对象长度 C 中,for循环中写明a.size(),每次循环这个值是重新计算的; # include “iostream” # include <vector> using namespace std;int main() {vector<int> a(10);int cnt 0…...
Transit Map:让公共交通可视化变得简单有趣的工具
Transit Map:让公共交通可视化变得简单有趣的工具 【免费下载链接】transit-map The server and client used in transit map simulations like swisstrains.ch 项目地址: https://gitcode.com/gh_mirrors/tr/transit-map 还在为复杂的交通网络数据可视化而烦…...
Midjourney现代主义风格提示词工程(2024权威白皮书首发):覆盖12类先锋流派+87个已验证prompt模板
更多请点击: https://intelliparadigm.com 第一章:Midjourney现代主义风格的美学基因与范式跃迁 现代主义风格在Midjourney中的生成并非对包豪斯或构成主义的简单复刻,而是通过扩散模型对20世纪视觉语法进行概率性重编码——其核心在于将“简…...
骨传导耳机品牌Mojawa完成数千万元A+轮融资,发力AI运动智能平台
硬氪获悉,苏州索迩电子技术有限公司近日完成数千万元人民币的A轮融资,由正海资本领投。资金将用于拓展海外线下渠道和推进产品AI智能化研发。骨传导耳机市场增长显著在音频产品市场,骨传导耳机因无线和开耳式聆听技术需求增加而显著增长。202…...
破解软件安全计划人才困局:从安全左移到DevSecOps实践
1. 软件安全计划(SSI)的困境与破局:从一份调查报告说起 最近,一份由新思科技(Synopsys)在中国市场发起的调查报告,在不少技术管理者的圈子里引发了讨论。报告里一个刺眼的数字是: 6…...
网易云音乐增强脚本架构解析:基于用户脚本技术的云音乐生态扩展方案
网易云音乐增强脚本架构解析:基于用户脚本技术的云音乐生态扩展方案 【免费下载链接】myuserscripts 网易云音乐油猴脚本:歌曲下载、转存云盘、云盘歌曲快传、云盘匹配纠正... 项目地址: https://gitcode.com/gh_mirrors/my/myuserscripts 项目愿景与价值主张…...
3D结构光相机 | 抓取/焊接/测量全搞定,高反光黑色物体重建精度高,工业场景全覆盖,户外无惧强光
一 产品介绍苏州三迪斯维出品的3D相机采用主动结构光技术,拍摄速度快、成像精细、方案成熟稳定,针对不同应用场景物体可输出高质量点云数据图,精度高、速度快、环境自适应性强,不用系列适用场景不同,分别如下ÿ…...
TestableMock在Android项目中的应用:完整配置与最佳实践
TestableMock在Android项目中的应用:完整配置与最佳实践 【免费下载链接】testable-mock 换种思路写Mock,让单元测试更简单 项目地址: https://gitcode.com/gh_mirrors/te/testable-mock TestableMock是一款创新的单元测试Mock工具,专…...
B站缓存视频拯救指南:如何用m4s-converter快速解锁被封存的数字记忆
B站缓存视频拯救指南:如何用m4s-converter快速解锁被封存的数字记忆 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾在深夜缓…...
多模态大模型应用开发利器:xBrain工具箱核心解析与实战
1. 项目概述:一个面向多模态大模型的开源工具箱 最近在折腾大模型应用开发,特别是涉及到图像、文本、音频等多模态任务时,常常感到工具链的割裂。文本生成有成熟的框架,视觉任务又有另一套生态,想把它们高效地整合到一…...
SAP屏幕导航:从SET到LEAVE,实战解析六大跳转策略
1. SAP屏幕导航的核心逻辑 在SAP ABAP开发中,屏幕导航就像是在迷宫中寻找出口。想象你手里有六把不同的钥匙(六种跳转策略),每把钥匙对应不同的门锁(业务场景)。选错钥匙要么打不开门,要么可能把…...
