基于负载的资源智能扩缩容

举报
数据湖爱好者 发表于 2021/05/10 09:09:01 2021/05/10
【摘要】 数据湖探索(Data Lake Insight,简称DLI)是一款Serverless的大数据分析服务,可通过弹性伸缩资源来提高资源的使用率,减少用户数据分析成本。未来考虑基于负载的自动扩缩容来进一步智能化地管理用户的资源,提供更高的性价比服务。基于此背景,本博文简单介绍了微软发表在SIGMOD'16的一篇关于资源动态按需调整的论文,Automated Demand-driven Resou...


数据湖探索(Data Lake Insight,简称DLI)是一款Serverless的大数据分析服务,可通过弹性伸缩资源来提高资源的使用率,减少用户数据分析成本。未来考虑基于负载的自动扩缩容来进一步智能化地管理用户的资源,提供更高的性价比服务。基于此背景,本博文简单介绍了微软发表在SIGMOD'16的一篇关于资源动态按需调整的论文,Automated Demand-driven Resource Scaling in Relational Database-as-a-Service。

介绍:

  • 用户自己调整资源的难度大: 
    • 工作负载和资源需求可能在几分钟到几小时内发生显著变化,
    • 容器大小在资源数量和货币成本方面都有数量级的变化
  • 容器的size是规定了容器所能提供的资源大小;
  • DaaS平台提供了容器大小的集合,并通过允许租户随时间更改数据库的容器大小来支持灵活性。
  • Azure SQL DB中最小和最大容器的成本相差三个数量级。
  • Scale-up 单一容器的size发生变化;Scale-out 容器的数量发生变化,这里论文专注于scale-up。
  • 资源高利用率并不代表需要更多的资源;
  • 当容器大小在资源和成本上有显著差异时,对不正确的需求估计的惩罚可能很高——如果需求被低估,那么性能会很差;如果需求被高估,那么成本会更高。DaaS的大多数租户都负担不起雇佣复杂的数据库管理员的费用,而这些管理员是创建合理规模的资源所必需的。
  • 准确的关键点
    • 基于统计的信号收集能够容忍noise;
    • 组合多种信号来降低误差
    • DaaS平台能够收集各类重要的遥感信号。
  • 用户提前给定预算,并且给定可接受的latency目标,如果latency目标已经满足,会在信号即使需要更高的资源情况下减少资源。用户并不需要指定吞吐的指标。

目标:helps the tenants achieve their desired latency goals while minimizing the costs and remaining within the specified budget.

问题定义:

  • 虽然对于性能关键的应用程序来说,完全根据需求进行扩展可能是可取的,但是对于预算敏感的租户来说,这样做可能并不划算。为了支持各种租户需求,我们公开了一小组旋钮(租户可以选择设置这些旋钮),以控制自动伸缩逻辑的成本和行为。
  • 指标
    • 预算
    • 周期
    • 延迟目标
    • 粗粒度性能敏感性

遥感管理

  • 遥感信号
    • latency
    • resource utilization CPU, men, disk I/O
    • Wait statistic (TM跟踪等待时间的大小和百分比,即用于等待资源的时间占总等待时间的百分比)
      • Using rules, we map the wait times to the resource to determine the total time the tenant’s requests waited for that resource. We classify waits into a broad set of classes for the key physical and logical resources: CPU, memory, disk I/O, log I/O, locks, and system.
  • 派生信号
    • 稳健地识别随时间变化的趋势 —— 例如,如果在最近的历史中出现了延迟随时间减少的趋势,这可能是延迟目标在不久的将来可能被违反的早期信号。
    • 强劲检测相关 —— 如果对资源的需求超过了分配,使资源成为瓶颈,那么在事件之前的时间间隔内,通常会增加该资源的利用率或与该资源相关的等待时间,或者两者都增加。

资源需求估计

如果多个弱预测信号预测了对某一资源的高需求,它就增加了实际需求高的可能性。

  • 不使用统计学习的方法原因是容易过拟合;
  • 基于规则的方法主要是通过设置不同的阀值来判断;并且容易给出解释。
  • 步骤:确定每个信号的阈值,以及如何利用DaaS中的生产遥测技术来确定这些阈值,以及一些用于检测高需求和低需求的示例规则。
  • 检测高需求和低需求以及随时更改资源配置。

预算管理

  • 由于间隔的预算分配是在线的,并且不知道未来工作负载到达模式,因此分配算法必须在满足当前需求的同时,为未来间隔中意外的突发事件保留足够的预算;
  • 将预算管理问题类比为计算机网络中的流量形成问题,采用了令牌桶(token bucket)算法。

自动拓展逻辑

  • 自动伸缩逻辑通过监视延迟、资源需求和可用预算来确定下一个计费间隔的容器大小。在计费间隔结束时,自动伸缩逻辑确定租户是否对资源有较高的需求。如果延迟很差,或者延迟随时间有显著增加的趋势,那么如果有足够的预算,逻辑上就会建议进行扩展。如果延迟很好且没有退化,并且资源需求很低,那么逻辑建议按比例缩小。否则它不采取任何行动。

实验

  • Workloads in our experiments: TPC-C, Dell DVD Store(DS2),and a synthetic micro-benchmark (CPUIO) that generates queries that are CPU-, disk I/O- and/or log I/O-intensive. 以及某一个租户的实际工作负载
  • 离线方法:静态和跟踪;
  • 在线方法:auto
  • Ballooning and low memory demand
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。