PerfEnforce Demonstration: Data Analytics with Performance Guarantees

PerfEnforce Demonstration: Data Analytics with Performance Guarantees

Created by: ctur
Date: April 2, 2023 2:54 PM
Status: ready to start

实时响应式的扩展算法

实时响应式的扩展算法分为 1. 比例积分控制 2. 强化学习

比例积分控制方法

“We use a proportional-integral controller (PI) as a method that helps PerfEnforce react based on the magnitude of the error while avoiding oscillations over time.” (Ortiz et al., 2016, p. 3) (pdf) 🔤我们使用比例积分控制器 (PI) 作为一种方法,帮助 PerfEnforce 根据误差的大小做出反应,同时避免随时间发生振荡。🔤

At each time step, t, the controller produces an actuator value u(t) that causes the system to produce an output y(t + 1) at the next time step. The goal is for the system output y(t) to be equal to some desired reference output r(t). In an integral controller, the actuator value depends on the accumulation of past errors of the system. This can be represented as: 在每个时间步长 t,控制器产生执行器值 u(t),使系统在下一个时间步长产生输出 y(t + 1)。目标是使系统输出 y(t) 等于某个所需的参考输出 r(t)。在积分控制器中,执行器值取决于系统过去误差的累积。这可以表示为:

在这里插入图片描述
notes:
t real  ( q ) t s l a ( q ) \frac{t_{\text {real }}(q)}{t_{s l a}(q)} tsla(q)treal (q)
这个比例值大于1,代表的是资源分配不足;
小于1代表的是资源过度分配了。

“Integral control alone may be slow to react to changes in the workload. Therefore, we also introduce a proportional control component, to yield a PI controller with the following formulation:” (Ortiz et al., 2016, p. 3) (pdf) 🔤单独的整体控制可能对工作负载的变化反应缓慢。因此,我们还引入了比例控制组件,以生成具有以下公式的 PI 控制器:🔤
在这里插入图片描述

强化学习控制方法

使用RL方法,把集群缩放过程建模为MDP。目标是转移状态以产生最大的奖励值。当系统在不同的状态之间移动的时候,模型会不断地学习并且更新奖励值。

In our setting, each cluster configuration represents a state in the model. We define the reward function to be the realto-SLA runtime ratio. Our goal is to favor states with the reward closest to 1.0, where the real query runtimes are closest to the SLA runtimes (see Section 3.1). 也就是说,目标是偏好于接近于1的奖励,奖励值为 1 代表了 真实响应时间最接近服务水平协议 SLA 要求的响应时间。

In RL, every time the system transitions to a state s, it updates the reward function for that state. In our setting, we use the following equation, where R(s′) denotes the updated reward for state s: 下面公式展示的是,发生了状态转移的时候,奖励值的更新过程。

让我们理解一下这个过程,在状态 s 下,有一系列的参数输入给系统,产生了一些效果,并且让系统达到了新的状态 s‘ ,这个效果呢,其实就是 alpha 所乘的那一坨的东西。可能是正的,也可能是负的
在这里插入图片描述

除了上面说的两个实时响应的方法之外,还有一类方法被称为主动缩放算法:

Proactive Scaling Algorithms(主动缩放算法,也就是基于预测的算法)

“Instead of approaches that react to runtime errors such as the PI controller and reinforcement learning, we also explore an approach that makes use of a predictive model. For each incoming query, PerfEnforce predicts the runtime for the query for each configuration and switches to the cheapest configuration that meets the SLA. PerfEnforce first builds an offline model. For training data, we use the Parallel Data Generation Framework tool [14] to generate a 10GB dataset with a set of 2500 queries. Training data consists of query plan features including the estimated max cost, estimated number of rows, estimated width, and number of workers. We observe that we can significantly improve this offline model if we incorporate information about specific queries that the user executes on his data. We achieve this goal by using an online machine learning model: as the user executes queries, PerfEnforce improves the model in an online fashion. We use the MOA (Massive Online Analysis) tool for online learning [4].” (Ortiz 等, 2016, p. 4) (pdf)

🔤我们还探索了一种使用预测模型的方法,而不是对运行时错误做出反应的方法,例如 PI 控制器和强化学习。对于每个传入查询,PerfEnforce 预测每个配置的查询运行时间,并切换到满足 SLA 的最便宜的配置。

PerfEnforce 首先构建一个离线模型。对于训练数据,我们使用并行数据生成框架工具 [14] 生成一个包含 2500 个查询的 10GB 数据集。训练数据由查询计划特征组成,包括估计的最大成本、估计的行数、估计的宽度和工人数。我们观察到,如果我们合并有关用户对其数据执行的特定查询的信息,我们可以显着改进此离线模型。

我们通过使用在线机器学习模型实现了这一目标:当用户执行查询时,PerfEnforce 以在线方式改进模型。我们使用 MOA(Massive Online Analysis)工具进行在线学习 [4]。🔤

在线学习的概念

“Online Learning (OL). We use the perceptron algorithm for the online model. The perceptron algorithm works by adjusting model weights for each new data point. We find that it adapts more quickly to new information than an active-learning based approach. PerfEnforce initiates the perceptron model by learning from the training set. For the first query, PerfEnforce uses this model to predict a runtime for each possible configuration. The cluster size with the closest runtime to the query’s SLA is chosen. Once the system runs the query and knows the real runtime, it adds this information to the model” (Ortiz 等, 2016, p. 4)
🔤在线学习 (OL)。我们对在线模型使用感知器算法。感知器算法通过为每个新数据点调整模型权重来工作。我们发现它比基于主动学习的方法更快地适应新信息。 PerfEnforce 通过从训练集中学习来启动感知器模型。对于第一个查询,PerfEnforce 使用此模型来预测每个可能配置的运行时间。选择运行时间最接近查询 SLA 的集群大小。一旦系统运行查询并知道真正的运行时间,它就会将此信息添加到模型中🔤

to ensure high quality of service even early on in a query session, we add a buffer based on the observed prediction errors. We call this method online learning with control buffer (OL+B). We predict the runtime of the next query tpred(qt+1) as follows:

简单地增加学习率会增加抖动。下面的公式用来预测 t+1 时刻的查询 q t + 1 q_{t+1} qt+1 的运行时间。

在这里插入图片描述

“PerfEnforce adjusts that runtime if the previous window of queries resulted in a positive percent error. Based on this adjusted prediction, PerfEnforce allocates the cluster size with the predicted runtime closest to the SLA deadline.” (Ortiz 等, 2016, p. 4) (pdf)
🔤如果前一个查询窗口导致正百分比错误,PerfEnforce 会调整该运行时。基于此调整后的预测,PerfEnforce 会根据最接近 SLA 截止日期的预测运行时间来分配集群大小。🔤

三种算法的对比

在这里插入图片描述上图的实验取的是算法在三个数据集表现上的平均值。

As the graph shows, no method clearly dominates the others.

对x轴的解释,是相对于最大配置下,节省的钱💰,这里是经过标准化的值。越是右边,节省的钱越多,成本也就越低。

On the x-axis, we measure a normalized value of money saved. This value is derived from the cost for each query, Cq. We calculate the money saved compared with using the largest, 12node cluster, for each query.

y轴是满足了服务质量要求的查询任务的比率,反映了performance。

下面这一段话对实验结果的描述非常值得学习!!!

For Proportional Integral Control (PI), we vary the query window sizes, W , and use a combination of either high or low values for the gain parameters. From these experiments, higher ki values result in a slightly higher QoS than using higher kp. For reinforcement learning (RL), we end up with a higher QoS (75% - 82%) than the PI control methods. We find that Online learning (OL) yields the highest QoS (above 85%) for several learning rates, LR. Finally, Online Learning with Control Buffer(OL+B), has better QoS compared to OL but at an even higher cost. In this experiment, both OL and OL+B techniques provide the highest QoS, while PI control leads to largest cost savings.

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

现在的年轻人真会玩,开发界面都这么时尚,不服老都不行了

文章目录一、你还在用传统的开发界面吗二、年轻人的界面1.动漫型2.偶像型3.提神型三、更换背景的操作第一步第二步第三步一、你还在用传统的开发界面吗 不比不知道,一比吓一跳,都2023年了,你还在用Pycharm的默认背景写代码吗?已经…

不同版本的JDK新特性

1.JDK9:模块化开发 模块化功能用的不是很多 2.JDK10:var局部变量推导 使用var的两个基本要求: 也用得不是很多 3.JDK11 (1)单文件程序 就是能够直接用java命令编译.java文件了,跳过了使用javac命令的步骤,对新人…

4年功能测试月薪9.5K,3个月时间成功进阶自动化,跳槽涨薪6k后我的路还很长...

前言 其实最开始我并不是互联网从业者,是经历了一场六个月的培训才入的行,这个经历仿佛就是一个遮羞布,不能让任何人知道,就算有面试的时候被问到你是不是被培训的,我还是不能承认这段历史。我是为了生存,…

AD14安装步骤

首先 得需要科学安软件,我相信你可以找到的。 第一步:解压完成之后哦,双击打开AltiumDesignerSetup14_3_15.exe 第二步:点击next 第三步:先点击我同意,在点击next 第四步:点击next 第五步&…

路径 Dijkstra 蓝桥杯 JAVA

目录题目描述:Dijkstra 算法 (朴素版):用Dijkstra解决本题:题目描述: 小蓝学习了最短路径之后特别高兴,他定义了一个特别的图,希望找到图中的最短路径。 小蓝的图由2021 个结点组成,依次编号1 至…

TypeScript由浅到深(上篇)

目录 一、什么是TypeScript有什么特点: 二、TypeScript的编译环境: 三、TypeScript数据类型: 01_标识符的类型推导: 02_JS中的类型Array: 03_JS 中的类型Object: 04_函数的类型: 05_匿名…

C++游戏分析与破解方法介绍

1、C游戏简介 目前手机游戏直接用C开发的已经不多,使用C开发的多是早期的基于cocos2dx的游戏,因此我们这里就以cocos2d-x为例讲解C游戏的分析与破解方法。 Cocos2d-x是一个移动端游戏开发框架,可以使用C或者lua进行开发,也可以混…

SpringBoot事件的选取原理

有四个事件启动监听器: 事件1会被监听吗?答案不会 容器发布一个正在启动的事件 org.springframework.context.event.AbstractApplicationEventMulticaster#retrieveApplicationListeners 遍历我们注册的监听器,但这里有个判断条件&#xff…

众人围剿,GPT-5招惹了谁

目录千人呼吁暂停AI训练代表人物分析反对原因分析信息安全人身安全失业利益总结GPT-4 火爆全球,引发了人工智能大浪潮。过去的一个月,OpenAI、微软、谷歌加上百度不断释放王炸,所有人都相信,AI 的就是未来的生产力。俗话说&#x…

Android动画进阶

在Android中,实现动画的方式通常有两种:视图动画和属性动画。然而这两种方式只能实现一些较为简单动画,仅仅通过改变这些控件属性的方式实现一些复杂的动画效果是比较有难度的,那么我们该如何实现复杂的动画。这里介绍两种实现方式…

Android配置Jetpack-Compose环境

Android 配置 Jetpack Compose 环境 记录配置Jetpack Compose环境的一些坑~ 本文同步更新于博客: 链接 直接创建kotlin项目或创建java项目后再配置均可 根目录 build.gradle 配置kotlin环境构建脚本 buildscript {ext.kotlin_version 1.4.32dependencies {clas…

大模型时代,AI模型开源还能这么玩?模型空间内测邀请(含重磅福利)

‍人工智能学习与实训社区飞桨 AI Studio自2019年以来,持续吸纳众多开发者于平台内开源贡献、实训提升,分享项目经验、共享自研模型等。 随着 AI Studio 开发者规模的增长、开发者开发能力的提升,我们收到许多期待与建议,经过一段…

企业OA管理系统需具备哪些功能?

OA也就是办公自动化,是通过将计算机、通信等现代化技术运用到传统办公方式而形成的一种新型办公方式。OA办公管理系统能够更加高效优质的处理办公事务以及进行企业管理业务,实现对资源的高效利用,进而达到提高生产力,提升管理水平…

详解vue各种权限控制与管理的实现思路

一、 菜单权限 菜单权限:控制用户在系统中能够看到哪些菜单项菜单权限指的就是后台系统中的左侧的菜单栏,前端可以根据后端接口返回的权限数据结合element-ui菜单组件循环拼接而成即可,有什么权限就展示什么菜单通过vuex持久化插件(本地存储…

Linux系统【centos7】常用基础命令教程

今天我来介绍一下Linux系统的基础知识。 首先,我们需要了解Linux是什么。Linux是一种免费且开放源代码的操作系统,它被广泛用于服务器、移动设备和嵌入式系统。 接下来,我们需要了解基本的Linux命令。其中一些基本命令包括: 1.…

项目 TO 的自我修养

最近作为项目 TO 在公司内完成了一个涉及面比较广的项目,对于如何推动项目上线有一些经验和大家分享。希望刚毕业几年、没有参与过大型项目的同学,从中能学到一些方法,为今后担任项目主力做一些准备。所谓的 TO,是 Technical Owne…

java和mysql进行排序和排名

目录 一、基于java排序和排名 1、数值相同,排名相同,排名连续 2、数值相同,排名相同,排名不连续 3、数值相同,排名不相同,排名连续 二、基于mysql排序和排名 1、准备一张表 2、插入数据 3、设置临时变量,方便后续查询 4、数值相同,排名相同,排名连续 5、数值相同,排名…

天猫食品饮料数据分析:2月份茶饮料品牌销量TOP10排行榜!

近年来,茶饮料品类逐渐丰富,也在潜移默化中激发消费者的购物欲望,茶饮料行业的整体市场规模也不断增长。 根据鲸参谋电商数据显示,2023年2月份在天猫平台上,茶饮料相关产品的月销量将近149万件,环比增长约…

ADAS-GPS定位原理概述

前言 “GPS传感器在无人机、室外物流车以及诸多机器人应用中经常出现,它们机器人的定位、导航中发挥着重要的作用,而今天的L2~L5级别自动驾驶系统更是离不开它们,今天我们走进它们的世界,探索其背后原理以及本质。” …

MySQL之事务和锁机制

文章目录一、事务1.1 事务特征1.2 隔离级别1.3 开启事务二、锁机制2.1 读锁、写锁2.2 全局锁、表锁、行锁2.3 记录锁、间隙锁、临键锁提示:以下是本篇文章正文内容,MySQL 系列学习将会持续更新 一、事务 在数据库里面,我们希望有些操作能够以…