【论文】精读笔记1-前沿-跨地域资源预留调度
📖《Characterizing and orchestrating VM reservation in geo-distributed clouds to improve the resource efficiency》
总结
对象
- 供应商-租户
- 供应商:提供资源
- 资源特性:跨地域、多类型。带来异构 SLA、异构成本,通过在满足 SLA 的资源中优选,能够降低成本。
- 单租户:为满足实际需求(使用),预留资源(申请)
- 使用<申请。使用为固定信息可以对申请进行调整。
- 需求负载(使用)呈现出不同时空模式。不同时间对不同地域、虚机类型的需求会发生变化。
- 多租户:需求之间有重合。
- 需求负载(使用)类型不一,存在互补关系。
- 供应商:提供资源
问题
- 租户预留资源的方案较贵,有优化的空间。可以从资源地区、资源类型两方面优化。
- (意味着用户所需的资源总量是确定的,只需要进行调整)
- 以总体部署成本为优化目标。
- 租户预留的资源经常用不上,可以互补。
- (用户所需的资源总量可以调整?如果调整错了怎么办?如何衡量这种错误?)
- 以预留资源量为优化目标。
🎯需求
- 云提供商通常从不同地理区域的多个数据中心构建地理分布式云,为不同位置的租户提供服务。
- 公共云提供商通常在不同的地理区域构建多个数据中心,为不同地点的租户提供服务。数据中心中的硬件资源通常被组织成资源池,云提供商通常提供不同的虚拟机(VM)类型供租户选择。由于不同的能源费用和虚拟机性能,这些区域和虚拟机类型通常具有不同的资源成本系数。
- 运行大规模应用的租户,往往会根据其在靠近终端用户的区域的峰值负载来预留资源,以应对不断变化的应用负载,浪费了大量资源。
- 这些地理分布式云通常托管大型应用程序,例如流视频应用程序(如 YouTube)和社交网络应用程序(如 Twitter 和 Facebook)。此类面向租户的应用程序的实际负载经常由于计划外负载峰值或每日负载模式而动态变化,需要不同数量的资源来实现严格的服务质量(QoS)。
- 为此,当前的云(例如 AWS、Azure、Google Cloud)允许租户在首选区域中预留具有首选规格的虚拟机。租户经常申请根据靠近最终用户的云区域中可能的峰值负载来预留虚拟机。
🤺挑战
因此,我们描述了生产公共地理分布式云中排名靠前的租户的 VM 请求模式,并在 4 个月内从云的前 20 个租户中开源了 VM 请求跟踪。特征分析表明,大型租户的资源使用在时序、地域、虚拟机类型等维度上具有不同的时空模式,并具有不同租户间调峰的潜力,从而进一步降低资源预留成本。
- 在本文中,我们首先分析了具有 17 个区域的生产地理分布式云中这些租户的资源(CPU 核心和内存空间)预留模式。
- 我们观察到租户指定的资源预留策略导致两个主要问题。
- 1)首先,租户往往只在短时间内使用所有预留资源,预留资源造成巨大的资源浪费。例如,在我们的地理分布式云中,最多 68.6% 的预留资源在一个区域中实际使用,而在最坏的情况下只有 1.0% 的预留资源被使用(第 4.1 节)。
- 2)其次,预留通常放置在靠近最终租户的昂贵区域或昂贵的VM类型上,昂贵区域/VM类型上的资源可能被不必要地预留(第4.2节)。在地理上接近且具有类似性能的更便宜的区域/VM 类型上保留“刚好够用”的资源是有益的,同时仍然确保所需的服务级别协议 (SLA)。
- 我们观察到租户指定的资源预留策略导致两个主要问题。
- 在本文中,我们首先分析了具有 17 个区域的生产地理分布式云中这些租户的资源(CPU 核心和内存空间)预留模式。
下图显示了我们跟踪的 84379 个租户的资源使用百分比(核心 × 小时)。据观察,前 20 位租户使用了所有资源使用量的 54.3%。虽然少数大型租户使用了很大比例的资源,但通过说服他们以较低的价格和有保证的 SLA 允许灵活的跨数据中心虚拟机预留/调度,有机会大大提高地理分布式云的资源效率。
(图1-在我们的地理分布式云中按降序排列的租户的聚合资源使用情况)
利用上述机会并非易事,因为大型租户的资源使用表现出不同的 时间(第 5.1 节)和空间(第 5.2 节)模式。
- 1)时间模式呈现租户随时间的资源使用量。
- 例如,视频应用程序通常具有每日负载模式,而社交网络应用程序具有突发新闻的突发请求模式。
- 2)空间模式显示了租户在不同区域和虚拟机类型上的资源使用模式。
- 例如,租户可以将虚拟机部署在靠近最终用户的多个区域,以实现较短的响应延迟,或者部署在满足性能要求的各种规格的虚拟机上。
- 1)时间模式呈现租户随时间的资源使用量。
此外,我们还观察到一些大租户具有互补的时间和空间资源使用模式。
- 当某个租户使用少量资源时(实际预留大量资源),其他一些租户会使用其预留的大部分资源,反之亦然。这是因为这些租户通常运行不同的应用程序,并且他们的最终用户具有不同的访问行为。通过将这些互补租户的资源编排在地理分布式云的同一区域,可以进一步降低资源预留成本。
- 从技术上讲,要提高资源效率,需要解决三个挑战。
- 1)首先,要准确预测租户的资源使用模式,以便为租户预留“刚够用”的资源。
- 2)其次,为了避免在高成本区域或虚拟机类型上不必要地预留过多资源的情况,考虑到租户的空间资源使用模式,跨区域资源编排器需要仔细地将每个租户的预留资源分配到不同的区域/虚拟机类型。
- 3)最后,由于应用程序的负载偶尔会爆发,因此需要在线调度机制来快速为租户分配更多资源。
🚧现状
数据集
- 云提供商发布了公共云和私有云的生产环境 traces 数据集。由于开源 traces 数据集的数量有限,我们将所有已知的 traces 数据集与我们的进行比较。下表进行了比较。
(表1-traces对比)
- 在私有云方面,
- 1)谷歌在 2011 年提供了其 Borg 集群一个月的 traces 数据,并在 2019 年发布了包含 8 个不同集群的 traces 数据扩展版本。
- 这些 traces 主要针对其私有云中基于容器的内部工作负载。
- 2)阿里云在 2017 年发布了一个可公开访问的 traces 数据集,在 12 小时内有 1300 台机器,其中包含延迟关键型(LC)和批处理工作负载。2018 年,阿里巴巴又发布了更大规模的 LC 和批量工作负载 traces 数据集,其中包含批量工作负载的 DAG 信息。
- 阿里巴巴的 traces 也主要集中在私有云环境下的内部应用。
- 相反,我们以公有云的 IaaS 模式来描述云虚拟机工作负载。
- 1)谷歌在 2011 年提供了其 Borg 集群一个月的 traces 数据,并在 2019 年发布了包含 8 个不同集群的 traces 数据扩展版本。
- 在公有云方面,
- 1)微软 Azure 在 2017 年和 2019 年的三个月内开源了其第一方和第三方虚拟机工作负载,该工作分析了虚拟机的时间行为,以显示其资源使用是可预测的。此外,微软 Azure 还发布了一个专门用于研究其虚拟机调度算法的虚拟机请求 traces 。
- 与这些 traces 相比,我们的轨迹侧重于我们的地理分布式云中大型租户虚拟机请求的资源使用的时间和空间特征。这种分析视角有助于我们研究在为大型租户预订资源时如何降低部署成本。
- 还有其他 traces 分析工作,涉及公有云的其他类型工作负载。
- 1)微软 Azure 分别于 2019 年和 2021 年发布了两份函数 traces 报告。
- 2)阿里巴巴分别于 2020 年和 2021 年发布了有关机器学习(ML)工作负载和微服务的 traces 分析。
- 与我们的 traces 分析不同,这些 traces 分析并不涉及 IaaS 模式下的虚拟机工作负载。
调度方法
- 在数据中心内部的任务调度方面,人们提出了一系列的工作来调度VM、容器和函数,分类为:
- 1)集中式
- 2)分布式:
- 两级式
- 状态共享式
- 3)混合式
- 他们的共同目标是在低延迟调度决策下寻求高调度质量。这些调度程序专注于数据中心内的任务级调度,因此它们不能应用于跨地域预留资源和调度虚拟机。
- 在地理分布式任务调度方面,大部分工作集中在管理不同数据中心之间的网络流量。
- Yugong通过项目放置、表复制和作业外包来管理网络流量,以节省公共网络带宽。
- Taiji通过将网络流量路由建模为分配问题,在地理上分配流量对象,以满足服务级别目标。
- Gaia消除了数据中心之间无关紧要的通信,同时保持了机器学习算法的正确性。
- ELIS和Nautilus在数据中心和边缘之间部署微服务时优化了公共网络中的网络流量,以实现更好的服务延迟。
- 然而,这些工作都没有考虑数据中心不同资源成本下的资源预留,没有以最小化计算资源预留成本为目的。
- 此外,当前的云提供商根据云租户指定的最大需求量和实例位置来预留资源。但云租户大多数时候无法充分利用预留资源,且预留位置可能资源成本系数较高,导致资源预留成本巨大。
- 此外,纳拉亚南等人提出了一种地理分布式容量规划策略来优化部署成本,但为每个租户独立编排资源,导致资源效率较差。
- 综上所述,迄今为止对公有云资源管理和任务调度的研究缺乏对大型商业提供商大租户时空格局关键特征的透彻理解。
🛩创新
基于以上分析,我们提出了一种名为ROS的资源预留和虚拟机请求调度方案,以在满足虚拟机分配请求的同时最大限度地降低资源预留成本。
因此,我们进一步提出了一种名为 ROS 的运行时方案来编排地理分布式云中的资源。 ROS根据多个租户的时间和空间资源使用模式来优化它们的资源编排。
- ROS 包括负载模式预测器、跨区域资源协调器和突发感知调度器来解决上述挑战。
- 1)预测器使用不同的预测方法来预测大租户的资源使用情况。
- 2)考虑到区域/虚拟机类型的不同成本以及大租户的互补性,编排器将预测的负载模式作为输入,将预留资源编排到不同区域/虚拟机类型上,以降低总体部署成本。
- 3)在线调度器对VM请求进行调度,并对运行时的突发请求和不规则请求进行补偿。
- ROS 包括负载模式预测器、跨区域资源协调器和突发感知调度器来解决上述挑战。
我们将贡献总结如下:
- • 我们的生产地理分布式云的开源虚拟机请求数据集。该数据集包括前 20 个租户在 4 个月内的 VM 请求跟踪。据我们所知,这是地理分布式云中第一个 大型租户的虚拟机请求数据集。
- • 对我们生产级地理分布式云中的虚拟机请求进行全面分析。从分析中获得的见解确定了通过跨区域预留和调度来降低资源预留成本的机会。
- • 资源编排和调度方案的设计。该方案在满足虚拟机请求的同时,最大限度地降低了资源预留成本。仿真结果表明,它可以降低总体部署成本和预留资源。
我们的主要贡献是开源跟踪以及对地理分布式云中大型租户的虚拟机使用模式的全面分析。 ROS是基于分析而设计的,也具有多项技术新颖性。
⛰️场景
- 我们的虚拟机请求跟踪包括 2021 年 4 个月期间 17 个地区前 20 名大型租户和数十种虚拟机类型。每个请求都说明了租户的需求,如地区和虚拟机类型。本节将介绍本文的背景和术语。下图显示了我们的地理分布式云的概览。
(图2-地理分布式云概览)
1. 云区域和数据中心
- 如上图所示,我们的云平台的数据中心建在多个地理位置上。我们的云平台根据地理位置划分区域(Regions)。
- 弹性计算、块存储和 VPC 网络等公共服务在同一区域内共享。区域内的数据中心通过高速光纤网络连接,以满足云租户跨数据中心构建高可用性系统的要求。
- 由于不同的数据中心处于相同的地理位置,大型云租户资源使用的空间特征体现在于对不同区域的选择。
- 我们将不同区域的资源使用情况作为分析空间特征的一个方面,并为大型租户预留资源,将虚拟机请求调度到不同区域。
- 在本文中,我们使用 ri 来表示特定区域。此外,为了便于后面数据分析部分的统计,我们将所有区域划分至三个区域集(Region Sets),分别标记为Region Set 1、Region Set 2 和Region Set 3,每个区域集内区域的地理位置都比较接近。
2. 资源池和虚拟机类型
- 如上图所示,每个区域的异构硬件资源被组织成多种类型的资源池(用不同颜色标记)。
- 每个资源池都有来自该区域数据中心的相同类型的物理服务器。
- 不同区域可能拥有相同类型的资源池,因为它们可能拥有相同类型的物理服务器。
- 不同的资源池具有不同的容量和成本系数。
- 我们的云平台提供不同类型的虚拟机,并标有不同的虚拟机名称,供云租户根据需求进行选择。
- 以名为 “s2.medium.4“ 的虚拟机为例:
- “s2“ 代表虚拟机所在物理服务器的类型,
- “medium“ 代表 CPU 内核的数量,
- “4“ 代表内存(GB)与 CPU 内核的比例。
- 因此,”s2“与资源池的类型相对应,我们将其命名为虚拟机类型。
- 以名为 “s2.medium.4“ 的虚拟机为例:
- 对于不同的虚拟机类型,我们使用 vi 来表示特定的虚拟机类型。
- 我们的云平台提供不同类型的虚拟机,并标有不同的虚拟机名称,供云租户根据需求进行选择。
- 由于不同的大型云租户对不同的虚拟机类型有其特定的资源使用需求,因此我们将不同虚拟机类型的资源使用情况作为分析空间特征的另一个方面。
- 此外,结合区域的空间特征,我们的方案旨在为不同区域的不同虚拟机类型预留资源和调度虚拟机请求。
3. 资源预留
- 由于一些特殊情况(如计划外负载峰值和大规模虚拟机迁移),租户有时需要比日常使用量更多的资源。为处理这些情况,当前的云提供商提供预留(Reservation)实例或服务,预留资源量和预留实例位置 均由云租户自己指定,如上图右侧所示。(#TODO 没提及实例类型?)
- 这些预留方法可确保大型租户的资源高可用性,但却给云提供商带来了巨大的部署成本。原因在于:
- (1)云租户在大多数时间无法充分利用预留资源,(所以要优化预留的资源量)(#TODO 还没解释如何刻画预留失败的惩罚)
- (2)租户指定的预留实例位置可能具有较高的资源成本系数。(所以要优化地理位置和资源类型)
- 这些预留方法可确保大型租户的资源高可用性,但却给云提供商带来了巨大的部署成本。原因在于:
- 本文分析了大型云租户的时空模式,并设计了相应的方法来降低资源预留的部署成本。
- 限于篇幅,在本文的数据分析中,我们只展示了 CPU 资源的统计结果。内存资源的统计结果与 CPU 的统计结果呈现类似的规律。
资源预留状态
- 在本节中,我们将分析云中资源预订的现状。
- 我们首先展示了预留资源的资源利用率。
- 然后,我们介绍了不同区域/虚拟机类型的资源使用分布情况,
- 并进一步提出了可接受的空间范围(acceptable spatial range)。
资源利用率
- 为确保在大租户需要超过其正常使用量的资源时(如计划外负载峰值)有资源可用,我们会提前为其预留资源。预留资源的数量由大租户根据其最大需求 自行指定。
- 然而,大多数大型租户的日常资源使用量在大部分时间都无法充分利用预留资源,这可能会造成资源浪费。
- 为了探究资源浪费的程度,我们每 10 分钟对不同区域的资源使用情况进行采样,并计算相对于每个区域所有大租户的总预留资源的资源使用率。
- 下图3报告了所有区域在所有采样点的资源利用率分布情况。
- 下图3(a)、下图3(b) 和下图3(c) 分别显示了 Region Set 1、Region Set 2 和 Region Set 3 的结果。(每个点代表:对于第rx个区域,第百分之x的用户(采样点)利用了百分之y资源)
- 从下图3(a)、下图3(b) 和下图3(c) 中可以发现,相对于预留资源,大部分区域的采样点利用率都很低,但不同区域的分布并不相似。
- 下图3(c)中 r11 的特殊曲线是由于:虽然我们在该区域为大租户预留了一些资源,但大部分采样点的资源使用量为 0。
- 对于下图3(d)所示的总体资源利用率分布,采样点主要分布在 20%-50% 之间。
- 下图4显示了不同区域的相对于其预留资源的平均利用率以及总利用率。
- 平均值在 1.0%-68.7% 之间,**平均总利用率为 32.3%**。
- 这些资源利用率低的结果证明,预留资源存在大量资源浪费。
(图3-资源利用率分布)
(图4-相对于预留总量的平均资源利用率)
- 如果我们能根据大型租户的资源使用模式为其预留资源,就有可能减少资源预留浪费。探索大型租户的资源使用时间模式是必要的。
资源使用分布情况
在地理分布式云环境中,不同区域或虚拟机类型可能具有不同的资源成本系数。因此,它有望将租户请求分配给成本系数较小的区域或虚拟机类型,从而降低总体部署成本。
我们首先探讨了大租户在不同区域的资源使用分布情况。
- 下图5(a) 显示了不同区域的不同资源成本系数。
- 一个区域的成本系数是其维护成本(如房地产和电力成本)与区域 r8 的成本进行归一化的结果。
- 我们可以发现, Region Set 1 有 2 个不同的值(1.2 和 0.7),Region Set 2 有 1 个值(1.0),Region Set 3 有 3 个不同的值(1.0、0.8 和 1.66)。
- 由于同一区域集中的区域在地理位置上比较接近,因此 Region Set i 区域中的大部分虚拟机请求都可以调度到该范围内的任何区域,而不会影响响应时间(由地理位置造成)。
- 下图6分别显示了 Region Set 1、Region Set 2 和 Region Set 3 中不同资源成本系数下大型租户当前的资源使用量分布情况。
- 我们可以看到,在 Region Set 1 和 Region Set 3 中,分别只有 30.2% 和 14.0% 的资源被分配到了低成本区域。
- 因此,当前租户资源使用分布并不倾向于低成本区域。
- 下图5(a) 显示了不同区域的不同资源成本系数。
(图5-不同区域/虚机类型的成本系数)
(图6-不同Region Set内区域资源使用量分布)
- 此外,我们还探讨了不同虚拟机类型的资源使用分布情况。
- 上图5(b) 显示了 7 种不同虚拟机类型的资源成本系数。虚拟机类型的成本系数是其在 1vCPU 和 2GiB 内存条件下的售价。
- 我们可以发现,这 7 种虚拟机类型有两个不同的资源系数值(0.06 和 0.105)。
- 此外,在与大型租户沟通后,我们了解到他们的大部分工作负载都可以在这 7 种虚拟机类型中的任何一种上执行,而不会产生不同的执行性能。
- 下图7显示了大租户当前在 7 种虚拟机类型上不同资源成本系数下的资源使用分布。
- 与区域的结果类似,我们也可以发现只有 19.6% 的资源分配给了低成本的虚拟机类型。
- 这一结果证明了当前租户资源的分布并不倾向于低成本虚拟机类型。
- 上图5(b) 显示了 7 种不同虚拟机类型的资源成本系数。虚拟机类型的成本系数是其在 1vCPU 和 2GiB 内存条件下的售价。
(图7-不同虚拟机类型资源使用量分布)
- 通过在低成本区域/虚拟机类型上预留资源或调度虚拟机来降低部署成本具有很大的潜力。因此,我们需要探索大型租户的空间(区域/虚拟机类型)资源使用模式。
可接受空间范围acceptable spatial range
数据中心间的调度比数据中心内的调度更为复杂,因为数据中心的成本系数和网络延迟各不相同。
- 结合上一节(资源使用分布情况)中的观察结果,我们通过事先与大租户协商,确定每个大租户可接受的资源使用空间范围 acceptable spatial range。(#TODO 目前的可接受空间范围还过于简单?)这有助于我们根据租户对网络延迟和虚拟机性能的服务水平协议,在低成本区域/虚拟机类型上为租户预留资源。
可接受空间范围acceptable spatial range考虑了大型租户对网络延迟和虚拟机性能的需求,因此包含两层含义。
- 首先,租户对 ri、…、rj 区域的预留资源或虚拟机请求可以在这些区域内任意预留或调度,因为这些区域在地理位置上比较接近,而且网络延迟对租户来说是可接受的。
- 例如,不同的区域集Region Set 1、Region Set 2 和 Region Set 3。(#TODO 目前是对所有用户相同约束?)
- 其次,租户在 vi、……、vj 等虚拟机类型上的预留资源或虚拟机请求可在这些虚拟机类型内任意预留或调度,因为这些虚拟机类型对于该租户的工作负载都具有可接受的性能,满足性能服务级别协议的要求。
- 例如,上图 7 中使用的 7 种虚拟机类型。
- 首先,租户对 ri、…、rj 区域的预留资源或虚拟机请求可以在这些区域内任意预留或调度,因为这些区域在地理位置上比较接近,而且网络延迟对租户来说是可接受的。
我们的资源协调和调度方案在资源预订和请求调度中考虑了大型租户可接受的空间范围acceptable spatial range,从而在满足大型租户所需的服务水平协议(SLA)的同时,最大限度地降低 部署成本。
主要发现总结
- 通过对预留资源利用和分配情况的分析,我们现在重申我们的 2 点看法。
- 首先,现有为大型租户预留资源过多,会造成巨大的资源浪费。(调整资源预留量)
- 我们希望通过分析租户的资源使用模式,预测租户近期所需的资源量,从而按需为租户预留资源,而不是始终根据租户指定的最大值预留资源。
- 其次,当前大型租户的资源使用不合理,不了解区域和虚拟机类型的成本,也会造成巨大的不必要的成本开销。(调整资源预留位置/类型)
- 具体来说,只有不到 30% 的大型租户的资源使用分布在低成本区域或虚拟机类型上。因此,为低成本区域和虚拟机类型预留资源或安排虚拟机请求以降低整体部署成本大有可为。
- 首先,现有为大型租户预留资源过多,会造成巨大的资源浪费。(调整资源预留量)
- 总之,无论是减少预留资源还是在低成本区域/虚拟机类型中预留资源,基础都在于对大型租户资源使用模式的分析。这促使我们在下一节(时空资源使用模式)中分析大型租户的资源使用模式。
时空资源使用模式
- 本节将分析大型租户的资源时间使用模式,将其分为多种类型,并提出相应的预测方法。
- 然后,我们将大型租户的资源使用情况 细分为区域和虚拟机类型,以探索其空间特征。
- 此外,我们还探讨了不同租户之间削峰(peak shaving)的时间和空间潜力。
资源时间使用模式
- 通过分析大型租户的不同时间模式,可以帮助我们预测其资源使用情况,然后根据预测结果储备资源,减少资源浪费。
- 在本节中,我们将探讨 20 个大型租户的时间模式,并将其分为 4 种不同类型,即昼夜负载模式(the diurnal load pattern)、持续使用模式(persistent usage pattern)、突发使用模式(bursty usage pattern)和不规则使用模式(irregular usage pattern)。
1)昼夜负载模式 the diurnal load pattern
- 该模式下通常表现为典型的白天与黑夜交替模式。我们发现,在 20 个顶级大租户中,有 6 个呈现出明显的昼夜时间模式,图 8 显示了 3 个示例大租户在一周内的资源使用情况。
- 除了明显的昼夜模式外,我们可以发现 3 个示例租户的峰值时间并不相同。
- 这就为通过不同大租户之间的削峰来减少预留资源带来了可能。(#TODO 如果都在白天峰值,削峰的意义有多大?具体如何削峰才能不影响租户?)
- 此外,租户 3 在中午和晚上分别有一个小峰值和一个大峰值。
- 这提醒我们,昼伏夜出的租户在一天中可能会有多个峰值。
- 对于昼伏夜出的租户,我们还发现其整体资源使用量在长期趋势上存在上升和下降的情况。
- 除了明显的昼夜模式外,我们可以发现 3 个示例租户的峰值时间并不相同。
(图8-3个典型的昼夜负载模式租户在一周内归一化的资源使用量)
- 结合昼夜租户的短期和长期模式,可使用时间序列预测方法(如 LSTM 和 ARIMA)预测资源使用情况。
2)持续使用模式 persistent usage pattern
- 具有持久模式的资源使用通常在较长时间内变化较少,并在一天内保持不变。我们发现,在 20 个大型租户中,有 11 个可归类为持久型。图 9 显示了 3 个具有持续使用模式的大型租户在 4 个月内的使用结果。
- 结果显示,这 3 个租户的长期模式可进一步分为 3 个子类,即稳定型(5 个租户)、阶梯型(3 个租户)和斜线型(3 个租户)子类。
- 稳定型的资源使用量变化不大,且长期保持稳定。(#TODO 当发生突增的那几天怎么办?)
- 因此,只需计算前一段时间(如一周)的日均资源使用量,就能轻松预测其资源使用量。
- 阶梯型在一小段时间内(如相邻两天之间)有多次小的资源使用阶梯切换。
- 我们可以使用前一段时间(如一周)的最大值为其预留资源。
- 斜线型的长期趋势可以看作是一条斜率稳定的连续向上或向下的斜线。
- 对于该子类型,我们可以使用线性回归法,根据前一周的资源使用情况预测第二天的资源使用情况。
- 由于长期租户的资源使用量在长期内变化较小,因此可以使用前一时期的平均值和最大值以及线性回归分析方法来预测其使用量。
3)突发使用模式 bursty usage pattern
- 对于我们云中的大型租户,除了常规的昼夜资源使用模式外,还可能出现不可预测的 极高资源使用率。我们发现 20 个大型租户中有 2 个存在突发情况。如图 10 所示,我们探讨了它们的不同突发情况。
- 突发性案例在正常时间都具有昼夜资源使用模式,但在突发性时间的资源使用量约为正常时间的 3-7 倍。
- 此外,我们还可以观察到,3 个突发性案例的突发性持续时间 各不相同,分别为几十分钟、几小时和几天。
- 总之,这种使用模式在突发时间、突发资源量和突发持续时间方面都具有不可预测性。
- 由于突发情况的不可预测性,很难 提前预测资源使用情况并预留足够的资源。因此,突发资源使用的满足必须依靠在线调度和补偿。
- 例如,对于某个区域的突发负载,我们可以在运行时对其进行监控,改善预留资源,如果本地资源不足,则应用其他区域的资源。
- 此外,由于突发持续时间不可预测,我们需要监控突发持续时间,并在突发持续时间结束后减少预留资源,以减少资源预留的浪费。
- 最后,由于突发性租户在正常时间仍表现出昼夜规律,我们可以使用昼夜负载模式一节中的方法预测正常使用情况。
(图10-三个突发模式租户在一周内归一化的资源使用量)
- 大型租户的突发情况很难预测,我们主要依靠在线调度和补偿来满足突发的资源使用需求。
4)不规则使用模式 irregular usage pattern
- 在我们的跟踪数据中,一些大型租户(20 个大型租户中的 3 个)显示出不规则的资源使用情况。图 11 显示了 4 个月内不规则类型大租户的一个示例。我们可以发现,无论短期还是长期,它都没有确定的模式。
- 这种不规则的资源使用情况很难预测,我们也无法提前进行精确的资源预留。
- 因此,我们做了一些简单的预测,主要依靠 在线调度和补偿来处理。
(图11-1个不规则模式租户在四个月内归一化的资源使用量)
主要启示总结
- 根据对时间模式的观察,我们可以将其分为 4 种不同类型,即昼夜型、持续型、突发型和不规则型。
- 针对不同类型的资源使用模式,我们需要使用相应的方法进行预测,并根据预测结果提前进行资源预留。
- 此外,由于昼伏夜出的租户会有不同的高峰时间,因此有可能通过峰值分流来减少租户之间的资源预留。
- 对于突发型和不规则型租户,由于其不可预测性,区域内或跨区域的在线调度和补偿对满足其需求具有重要意义。
资源空间使用模式
- 不同区域/虚拟机类型的资源成本不同,大型租户可接受的空间范围也不同(资源使用分布节 和 可接受空间范围节)。
- 这些空间特征促使我们探索资源使用预测和预订在空间上的潜在差异。
- 因此,根据大型租户资源使用的时间特征,我们将资源使用进一步细分为不同的区域和虚拟机类型,以探索它们的空间模式。
1)使用单一主要区域/虚拟机类型
- 通过对 20 个租户的统计,我们发现分别有 10/20 个和 5/20 个大租户的虚拟机主要使用一个区域和一种虚拟机类型,而其他区域和虚拟机类型的资源使用量几乎可以忽略不计。
- 对于这类租户,我们可以重点预测其主要使用的一种区域/虚拟机类型的资源使用情况。类似的时间模式预测方法可用于预测该区域/虚拟机类型的资源使用情况。
- 其他区域/虚拟机类型的资源使用量通常很少且稳定,因此我们可以为大租户预留一个固定值(如以往数据的平均值)的资源。
- 这些大型租户的空间(区域/虚拟机类型)模式与其时间模式几乎没有差别。
2)使用多个区域/虚拟机类型,进行稳定的使用量划分
- 一些大型租户使用多个区域/虚拟机类型,资源使用量划分是稳定的,即不同区域/虚拟机类型之间的资源使用比例保持稳定。从对 20 个大型租户的统计来看,2/20 和 6/20 个大型租户使用了多个区域和虚拟机类型,资源使用分布比较稳定。
- 图 12(a) 显示了一个使用 3 个区域的租户实例。
- 我们可以发现,r12 的资源使用量与总资源使用量的趋势相似,而其他两个区域的资源使用量基本稳定,彼此相等。
- 此外,我们还可以发现 3 个区域的资源使用比例是相当稳定的。
- 图 12(b)显示了一个使用 3 种虚拟机类型的租户实例。
- 我们可以发现 v3 和 v5 的资源使用趋势与总资源使用趋势相似,而 v10 则保持稳定的波动。
- 此外,还可以观察到 3 种虚拟机类型的资源使用比例是大致保持稳定的,这与各地区的情况类似。
- 对于这类租户,由于不同区域/虚拟机类型的资源使用划分相互之间保持稳定,我们可以通过租户的时序预测结果 乘以 各区域/虚拟机类型的比例,轻松实现各区域/虚拟机类型的资源使用。
- 图 12(a) 显示了一个使用 3 个区域的租户实例。
(图12-两个租户在4个月内使用稳定模式的多个区域/虚拟机类型的归一化资源使用情况)
- 总之,虽然这类租户使用了多种区域/虚拟机类型,但其空间(区域/虚拟机类型)模式与时间模式仍然没有太大区别。
3)使用多个区域/虚拟机类型,进行动态的使用量划分
- 大多数大型租户使用多个区域/虚拟机类型,其资源使用量划分不断变化,即不同区域/虚拟机类型之间的资源使用比例经常变化。从我们对 20 个大型租户的统计来看,大多数租户都属于这种空间模式,区域和虚拟机类型空间模式分别为 8/20 和 9/20。
- 图 13(a)显示了一个使用 4 个区域的租户实例。
- 它们的资源使用比例经常变化,如图 14(a)所示的每周资源使用明细:
- 第 1 周的资源使用比例为 r8 > r5 ≈ r4 > r14 ≈ 0;
- 第 2 周至第 6 周,r5 > r8 > r4 > r14 ≈ 0;
- 第 7 周,r5 > r8 > r4 > r14;
- 第 8 周至第 12 周,r5 > r8 > r14 > r4 ≈ 0;
- 第 13 周起,r5 > r14 > r8 ≈ r4 ≈ 0。
- 此外,不同区域的资源使用情况呈现出不同的模式,与整体的时间模式并不一定相同。
- 它们的资源使用比例经常变化,如图 14(a)所示的每周资源使用明细:
- 图 13(b) 和图 14(b) 的结果也显示了类似的虚拟机类型空间模式观察结果。
- 图 13(a)显示了一个使用 4 个区域的租户实例。
- 这类租户的最小粒度(区域/虚拟机类型)空间模式与其整体时间模式存在许多差异。原因包括:
- (1) 不同区域/虚拟机类型之间的资源使用比例变化频繁;
- (2) 不同区域/虚拟机类型的资源使用呈现多种模式。
- 此外,由于不同的大租户都有自己可接受的空间范围,而这些空间范围比最小空间粒度(区域/虚拟机类型)更复杂,因此它们的空间模式与时间模式的差异会更大。
(图13-两个租户在4个月内使用变化模式的多个区域/虚拟机类型的归一化资源使用情况)
(图14-图13的两个租户的资源使用明细)
- 我们可以划分空间粒度,以不同租户可接受的空间范围acceptable spatial range为根据,进一步在相应的空间粒度上进行资源使用预测和资源预订,从而更好地降低资源预订成本。
主要启示总结
根据对不同区域/虚拟机类型资源使用情况的分析,我们发现大多数租户使用多个区域/虚拟机类型,资源使用情况呈动态划分,具有两个空间特征。
- 首先,不同区域/虚拟机类型的资源使用情况呈现出多种模式,这些模式不同于其总体资源使用情况的时间模式。
- 其次,不同区域/虚拟机类型之间的资源使用划分随着时间的推移经常发生变化。
考虑到不同大型租户的可接受空间范围更为复杂(见可接受空间范围节),空间模式与其时间模式的差异会更大。
集中式云不具备这些空间特性,因为对于租户而言,数据中心中裸机的资源使用模式通常是相同的。(#TODO 这个结论出自何处?)
空间特征建议我们在租户相应的可接受空间范围内进行资源使用预测和资源预订,以获得更好的预测结果和更高效的资源预订。(#TODO 这个结论的意思是以更粗的粒度设计而非细粒度考虑?)
通过削峰提高资源预留效率的潜力
- 根据资源时间使用模式节中对大型租户时间模式的分析,我们发现一些租户的资源使用呈现昼夜模式。此外,不同的大租户在一天中可能会有不同的高峰时间,这就为减少预留资源带来了可能性。因此,我们在本节中探讨了租户间削峰(peak shaving)的时间和空间潜力。
1)时间方面潜力
- 我们首先探讨了不同大租户之间的时间潜力。
- 图 15(a) 显示了两个租户在一周内对同一区域和同一虚拟机类型的资源使用情况。
- 如图中红色椭圆所示,我们可以发现两个租户的资源使用呈现出不同的峰值时间。
- 租户 1 总是在正午至中午达到峰值负载,而租户 2 总是在夜间达到峰值负载。
- 这两个租户的资源使用情况明显互补。
- 在本例中,我们每天同时为两个租户预留资源(#TODO 视为一个整体?),即相互削峰(peak shaving),然后计算其与分别为每个租户预留资源的方法的比率。(#TODO 对比的两种方法具体是怎么做的?都使用过量预测方法决定预留多少资源?)(#TODO 到底哪里使得峰值降低了?更容易预测?还是原本有双倍冗余,现在只有一倍冗余?)
- 图 16(a)中的结果显示,本周内每天的资源使用量都可以减少,平均值为 8.4%。
- 如图中红色椭圆所示,我们可以发现两个租户的资源使用呈现出不同的峰值时间。
- 从这个例子中,我们可以看到不同租户在不同时间段的削峰潜力,而其他租户的资源使用情况也呈现出类似的模式。
- 图 15(a) 显示了两个租户在一周内对同一区域和同一虚拟机类型的资源使用情况。
(图15-削峰的时间和空间(区域/虚拟机类型)潜力的示例(红色椭圆表示互补的资源使用情况))
(图16-各租户削峰方案相对于单独预留方案的归一化预留资源)
2)空间方面潜力
- 我们进一步探讨了不同区域和虚拟机类型的空间资源使用的削峰潜力。
- 图 15(b) 显示了两个租户在两个区域使用两种虚拟机类型的资源使用情况。
- 具体来说,
- 租户 1 位于区域 r14,虚拟机类型为 v5,
- 而租户 2 位于区域 r10,虚拟机类型为 v1。
- 如图中红色椭圆所示,两个大租户的资源使用曲线具有不同的峰值时间,与时间潜力类似。
- 租户 1 总是在上午达到负载峰值,而租户 2 总是在晚上达到负载峰值。
- 因此,如果我们将两个租户的请求调度到同一区域,并使用相同的虚拟机类型,就可以通过削峰来进一步降低资源使用量。
- 我们采用与图 16(a)相同的方法来计算预留资源比率,图 16(b)显示,每天的资源使用量可以减少更多,平均值为 13.2%,效果更好。
- 具体来说,
- 图 15(b) 显示了两个租户在两个区域使用两种虚拟机类型的资源使用情况。
- 较好的保留资源减少结果证明,在考虑空间因素后,削峰的潜力得到了提升。
使用模式分析的启示
通过对生产级地理分布式云中大型租户的时间和空间使用模式的全面分析,我们现在总结一下我们的 3 个关键见解。
- 首先,大租户有不同类型的时间模式,我们需要针对相应的时间模式使用合适的预测方法。此外,由于某些时间模式是不可预测的(如突发使用模式),因此有必要在运行时对其虚拟机请求进行调度和补偿。
- 其次,大多数租户具有明显的空间模式,包括
- (1) 不同区域、不同虚拟机类型的资源使用模式多种多样,
- (2) 不同区域、不同虚拟机类型的资源使用划分随时间变化频繁。
- 这些空间模式建议我们在大租户对应的可接受空间范围内进行资源使用预测和资源预留,以达到更好的预测效果并降低资源预留成本。
- 第三,我们观察到,昼伏夜出的大租户在时间和空间上都有可能通过相互削峰来减少预留资源。结合第 4.2 节中的分析,这些观察结果建议我们在考虑租户间削峰潜力的同时,在低成本区域/虚拟机类型上协调资源。
综合上述观点,我们提出了一种资源预留和虚拟机调度方案。
- 该方案由资源使用预测、资源协调、在线调度和补偿组成,在满足大型租户虚拟机请求的同时降低总体部署成本。
ROS方法
- 基于上述分析,我们提出了一种名为 ROS 的资源协调和调度方案。
- 在本节中,我们
- 首先介绍 ROS 的概述,
- 然后介绍 ROS 各部分的设计细节。
- 然后,我们将评估 ROS 在降低部署成本和资源预订方面的有效性。
- 最后,我们将讨论从跟踪中汲取的经验教训。
概述
- 图 17 显示了 ROS 的设计概览。
- ROS 由负载模式预测器、跨区域资源协调器和突发感知调度器组成。
- 预测器可识别租户的行为,并估算每个租户可接受空间范围内的资源使用情况(第 6.2 节)。
- 根据估计的负载模式,协调器会分配当天的资源,以最大限度地降低总体部署成本(第 6.3 节)。协调相当于将租户的资源使用量分配给每个区域的每种虚拟机类型,并决定相应的资源预留边界。
- 在运行时,调度程序会根据协调对租户的请求做出响应,并处理计划外的请求,如负载突发导致的突然请求(第 6.4 节)。
- ROS 由负载模式预测器、跨区域资源协调器和突发感知调度器组成。
(图17-ROS的设计概览)
- ROS 倾向于每天为租户协调资源,因为租户通常有昼夜负载模式。ROS 的设计逻辑也适用于其他时段。在一天中,ROS 的工作步骤如下。
- 在一天开始时,预测器会识别每个租户的资源使用模式,并使用相应的预测方法,在每个租户可接受的空间范围内预测当天的资源使用曲线。
- 这里的挑战在于租户的资源使用模式各不相同,因此需要不同的预测模型。
- 收到预测结果后,ROS 会将预测的资源使用情况协调到不同区域的不同虚拟机类型上,并分配相应的资源预留边界(按预测值预留,#TODO 是否会额外留一部分?)。
- 具有挑战性的是,ROS 不仅要考虑每个区域的资源量,还要考虑不同区域和不同虚拟机类型的成本差异。
- 在运行时,调度程序会分配资源,并监控不同区域不同虚拟机类型的资源需求。如果资源需求超过预留边界,调度器会补偿不足的资源预留。此外,当资源需求下降时,调度器还会降低预留上限。
- 我们在生产云中实施并部署了 ROS。取得的收益与对ROS的评估节中的结果类似。(#TODO 评估节中是如何测试的?)
负载模式预测
- 根据资源时间使用模式节中的分析,大型租户的资源使用模式可分为 4 种类型:昼夜模式、持续模式、突发模式和不规则模式。为了达到较高的准确性,ROS 使用不同的模型来预测不同模式下的负载变化。(#TODO 不进行额外的资源预留吗?)
- 具体来说,ROS 会预测每个租户在每个可接受空间范围内的资源使用量(CPU 和内存)。
- 为了预测租户的负载模式,我们:
- 首先使用 K-means 算法和质量计数差异算法对负载模式进行分类。
- 然后,预测器会选择相应的预测模型,根据前一周的跟踪进行预测,并获得租户第二天的资源使用时间曲线。
- 预测模型根据这些大租户的历史资源请求进行训练,并逐步更新,以捕捉新的模式变化。
- 对于云中的新租户,我们会在第一个月按照租户的指定预留足够的虚拟机。
- 在此期间,我们每 10 分钟收集一次资源使用数据,并训练模型参数。
- 对于昼夜负荷模式,采用了基于 LSTM 的三层模型来捕捉负荷随时间的变化。
- 具体来说,该模型包含两个 LSTM 单元,末端有一个全连接(FC)层。我们为每个租户在其可接受的空间范围内提供一个唯一的 LSTM 模型,LSTM 的输入是前一周的资源使用时间曲线,输出是第二天的资源使用时间曲线。
- 对于持续负荷模式,我们采用了平均值计算、最大值计算和线性回归(LR)分析方法,分别对稳定、阶梯和斜线子类型进行分析。
- 我们还为每个租户提供了一个独特的预测模型,用于预测该负载模式下每个租户可接受的空间范围。
- 在预测模型方面,
- LR 的输入和输出与 LSTM 相同;
- 平均值/最大值计算方法的输入与 LSTM 相同,我们使用输入的平均值/最大值作为第二天每个时间点的资源使用量,生成资源使用时间曲线。
- 具有突发和不规则负载模式的租户的资源需求很难预测。因此,对于这些负载模式,我们使用 LSTM 进行基本的资源使用预测,并依靠在线调度来快速满足计划外的资源请求。
- 对于具有昼夜和持续负载模式的可预测大型租户,实际负载预测的 R-平方值为 0.865。预测租户的负载模式只需 300 毫秒。
跨区域资源协调
我们基于以下两点设计协调器。
- 在特定大租户可接受的空间范围内,某些区域或虚拟机类型的资源成本较低(资源使用分布情况节)。如果 ROS 为租户预留资源,就能直接降低部署成本。
- 昼夜租户之间的资源使用可能是互补的。正如通过削峰提高资源预留效率的潜力节所分析的,在时间和空间上都有可能通过在大型租户之间削峰来减少资源预留。
对于虚拟机预留,如果租户能以所需的性能和网络延迟获得虚拟机,就满足了 SLA。
- 在我们的工作中,SLA 是通过可接受的空间范围来考虑的。
- 由于租户通常已确定了可接受的空间范围,预订超出这些范围的资源可能会导致违反 SLA。
- 例如,在远离终端用户的区域协调实时视频服务资源可能会导致高网络延迟。某些计算密集型工作负载可以部署在多个 CPU 增强型虚拟机类型上,但部署在内存增强型虚拟机类型上会降低性能。
- 因此,协调器会在每个可接受的空间范围内确定租户与每个资源类型的资源预留。
- 资源类型指的是某个区域内的特定虚拟机类型。
在公式 1 中,我们将资源协调建模为一个单目标优化问题。
- 在优化问题中,最优目标函数被定义为找到最小的总部署成本。
- 部署成本是每种资源类型在一天内的最大资源使用量乘以其成本系数的总和(#TODO 破案了!最大资源使用量。因此会出现额外的浪费)。
- 更具体地说,协调器的输入是预测器预测的大型租户的资源使用情况,输出是协调方案和每种资源类型的预订界限。我们提供了一个独特的模型,用于在每个可接受的空间范围内协调大型租户所需的资源。
- 假设在一个可接受的空间范围内有 m 个租户,他们所需的资源可以协调到 n 种资源类型上。
- 我们使用矩阵 Ratio 来表示协调方案。在矩阵中,ratioij 表示 i 租户在第 j 种资源类型上的资源使用百分比。
- 在公式 1 中,fi(t) 是租户 i 的 CPU 和内存资源使用情况的加权平均资源使用时间曲线,由预测器提供,即 fi(t) = α × CPUi(t) + β × *MEMi(t)*。
- α 和 β 分别是单位 CPU 和内存的相对成本。
- 此外,Cj 代表特定资源类型 j 的成本系数,计算方法是区域成本系数乘以虚拟机类型的成本系数。
- 优化问题有 3 个约束条件。
- 首先,对于每个大租户,资源比率之和必须等于 1,即满足该租户所需的资源使用量。
- 其次,每种资源的 CPU 和内存使用量不能超过其容量。
- 通过求解优化问题,可以得到最优协调矩阵 Ratio。表 2 总结了公式 1 中的变量。
- 在优化问题中,最优目标函数被定义为找到最小的总部署成本。
请注意,削峰体现在计算每种资源类型的最大资源使用量上(#TODO 通过“把所有用户统一考虑”实现削峰)。
- 其他协调器会独立处理每个租户(如 Narayanan 等人),而方程 1 则会优化多个租户的预留,从而实现跨区域的空间削峰。
(表2-被使用的变量含义)在一个有 17 个区域 和 7 种虚拟机 类型的云上(#TODO 小规模资源),ROS 可在 2.5 分钟 内协调约 118,000 个虚拟机的预留资源。如果对租户/区域/虚拟机类型进行分组,时间会呈指数级下降。(#TODO 分组指什么?)
突发感知的资源调度
- 即使离线预测和协调偶尔会对突发或不规则负载的租户不准确,突发感知调度也能针对不准确的资源预留修改预留边界。
- 收到虚拟机请求后,ROS 会根据该租户的比率矩阵和当前资源分配情况,将请求调度到其中一种资源类型。如果调度程序发现某一资源类型的资源使用量超出了当前的资源预留约束,就会启动补偿机制来调整预留约束。
- 资源预留的调整受三条规则的限制。
- 如果当前资源类型仍有闲置资源,调度器会增加资源预留约束,直到达到当前所需的资源使用量。
- 如果当前资源类型没有闲置资源,调度器在可接受的空间范围内选择成本最低、有足够闲置资源的资源类型,并提高其资源预留约束,以满足资源需求。
- 如果在指定的时间 t 内,某资源类型的资源使用量低于预留值,调度器将逐步减少其预留。调度器按照提高约束的相反顺序减少预订。(#TODO 是否只对被提高的部分进行减少?相反顺序指的是什么,被提高越多的越先降低?)
- 由于预留资源的主要增长是由突发负载引起的,因此我们根据突发负载的最短持续时间(数十分钟)来定义 t(突发使用模式节)。
- 因此,我们将 t 定义为 30 分钟,以便快速感知突发负载的结束。
- 之前的一些研究表明,当负载水平在 30 分钟内低于预定值时,负载可被视为下降。
- 我们的突发感知资源调度功能与自动缩放类似。不过,与当前的自动缩放策略(如 K8S)相比,ROS 为不同租户引入了可接受的空间范围(区域和虚拟机类型),从而以最低成本实现自动缩放。
对 ROS 的评估
【数据集】
- 我们使用开源的 4 个月跟踪数据集对 ROS 进行评估。
- 我们使用第一个月的跟踪数据来训练预测器,并使用其余 3 个月的跟踪数据来评估 ROS。
- 如云区域和数据中心节所述,
- 根据地理位置将区域划分为三个区域集(分别为Region Set 1、Region Set 2 和Region Set 3)。三个区域集分别有 7、2、8 个区域。
- 在与大租户协商后,我们提取了 7 种典型的虚拟机类型(v1–v7)。大租户的虚拟机请求可以在它们之间安全切换。从虚拟机类型来看,(v1–v7)集合被视为可接受的空间范围。
【实验一:降低部署成本】
- 我们首先将 ROS 与大多数云提供商目前使用的资源预留策略(即根据租户指定的数量和位置预留资源)进行了比较。
- 我们还将 ROS 与最先进的基准进行了比较,后者是一种地理分布式容量规划策略。
- 我们将其成本最小化模型应用到我们的方案中,该模型能意识到数据中心的不同成本系数,但能为每个租户独立协调资源。在以下实验中,我们将此基线命名为 Base。
【实验二:协调器有效性】
- 此外,我们还进行了另一项实验,将 ROS 与不带协调器的 ROS 变体(ROS-wo)进行比较,以探索协调器的有效性。
- ROS-wo 在相应的区域和虚拟机类型上为大租户预留了相当于其每天最大所需资源的资源。
- 在本实验中,我们使用跟踪数据集中的真实请求使用结果来替代预测结果,作为 ROS 和 ROS-wo 的输入,以便只关注协调器的有效性。
1)降低部署成本
【证明预测器+协调预留/调度器有效:预测准确+削峰+成本优化】
- 与租户指定的预订相比,ROS 的部署成本降低
- 图 18(a)显示了 ROS 与 租户指定策略 相比在三个区域集每天的归一化部署成本。
- 从图中可以看出,ROS 降低了所有日期的部署成本。(归一化后值都小于 1)
- 如图 19(a)中的蓝色条所示,与租户指定策略相比,ROS 可以将三个区域集和总的部署成本分别降低 74.9%、78.3%、75.0% 和 75.4%。
- 图 18(b)显示了 ROS 与 租户指定策略 相比的归一化预留资源。
- 我们可以观察到三个区域集每天的预留资源都有所减少。
- 如图 19(b)中的蓝色条所示,与特定租户策略相比,三个区域集的预留资源和总资源分别减少了 63.5%、66.2%、47.7% 和 60.1%。
- 与租户指定的预订相比,ROS 的部署成本降低有三个原因。
- 首先,ROS 根据预测的租户资源使用情况储备资源,而不是租户指定的固定资源储备量。
- 其次,ROS 会将租户预留的不同模式(如峰值相互错开)的资源协调到同一区域或同一虚拟机类型中,从而进一步降低预留约束。
- 第三,ROS 倾向于将租户的预留资源协调到低成本区域或虚拟机类型。
- 图 18(a)显示了 ROS 与 租户指定策略 相比在三个区域集每天的归一化部署成本。
【证明协调预留器有效:削峰】
- 此外,如图 19(a)和图 19(b)所示,ROS 还能比 Base 降低部署成本和预留资源。
- 据统计,ROS 可以将总部署成本和预留资源分别降低 24.7% 和 12.2%。
- Base系统表现不佳的原因是,它对每个租户的资源进行了独立协调。这就导致缺乏时间和空间潜力,无法通过在租户之间削峰来减少预留资源。
(图18-根据三个区域组每天的租户特定策略归一化的ROS部署成本和预留资源)
(图19-根据租户指定的策略,将ROS和Base的总体部署成本和预留资源归一化)
2)资源协调器的有效性
【证明协调预留器有效:削峰】
- 图 20(a)显示了 ROS 与 ROS-wo 的总体部署成本归一化情况。
- 在协调器的作用下,我们可以发现三个区域集的部署成本和总部署成本分别平均降低了 37.7%、44.9%、57.0% 和 45.2%。
- 图 20(b)显示了 ROS 与 ROS-wo 的总体预留资源归一化情况。
- 我们可以看到,三个区域集和总的预订资源平均分别减少了 12.0%、13.5%、8.6% 和 11.2%。
- 我们的协调器会将大型租户所需的资源错峰分配到相同的区域或虚拟机类型中,从而进一步减少资源预留。
【证明协调调度器有效:成本优化】
- 图 21 显示了三个区域组中不同资源类型的资源分配比例。(#TODO 为什么比例差异这么大?)
- 一种资源类型代表一个区域的一种虚拟机类型。
- 标签代表三个区域集的所有资源成本系数,由区域成本系数和虚拟机类型成本系数的乘积计算得出。
- 由于某些资源类型的成本系数相同,我们找出所有三个区域集的不同值,并计算每个区域集不同成本系数的资源分配百分比。
- 可以看出,ROS 将大部分资源分配给了成本系数较低的资源类型,而 ROS-wo 则将部分或大量资源分配给了成本系数较高的资源类型。协调器倾向于向低成本区域或虚拟机类型预留资源,这可以直接降低整体资源预留成本。
(图20-相对于ROS-wo,ROS的总体部署和预留资源归一化)
(图21-3个区域组中不同区域的不同虚拟机类型的资源分布情况)
经验教训
- 通过分析我们生产的地理分布式云中的资源请求轨迹,我们总结出了几条经验教训:
- 1)租户,即使是顶级租户,也不详细了解自己的资源需求。
- 他们经常告诉我们在靠近最终用户的区域预留足够的常用类型的虚拟机,而不尝试性能相似、价格更低的其他虚拟机类型或其他区域。
- 向他们推荐多种适用的虚拟机类型和多个区域可能会帮助租户降低成本,并帮助我们提高整个地理分布云的利用率。
- 2)最好从云提供商方面考虑资源预留。
- 考虑到其他租户的预留,一个租户最便宜的资源预留策略可能不再是最优的。
- 在这种情况下,为了优化整个资源和成本效率,最好由云提供商进行预留,因为租户不知道其他租户的潜在资源使用情况。
- 3)可以在低成本的地方建立数据中心,并通过自适应虚拟机协调提高利用率。
- 我们对 ROS 的实际使用表明,这种新的资源预留策略没有任何问题。
- 我们可以安全地在成本较低的地方建立一些数据中心,并将一些虚拟机从”热门”的昂贵数据中心卸载到成本较低的数据中心。这样,整个云的运行效率就能大大提高。
- 4)通过仔细选择所提供的虚拟机类型,有机会进一步优化资源利用率。
- 通过统计,我们发现不同类型的虚拟机有不同的预订率。
- 根据主要租户的工作负载调整类型,可以进一步提高资源利用率和效率。
- 1)租户,即使是顶级租户,也不详细了解自己的资源需求。
🧠思考
- 本文简化了“可接受范围”,对于复杂的“亲和组约束”还需要设计更高效的方案。
- 没有验证实时调度器的有效性,忽略了 SLA 不被满足时的违约成本。
- 没有提及实验是基于什么做的,看意思应该是模拟器。
🧠疑问
- 为什么面向数据中心内的任务调度架构不能应用于面向跨数据中心的调度?
- 本文最终采用的架构如何?
- 将不同用户预留编排在同一区域,是否意味着调整了其预留?也就是当用户都使用所有预留资源时(极端情况),可能出现资源不足的问题?这种情况如何处理?
- 如果都在白天峰值,削峰的意义有多大?具体如何削峰才能不影响租户?
- 希望这篇博客对你有帮助!如果你有任何问题或需要进一步的帮助,请随时提问。
- 如果你喜欢这篇文章,欢迎动动小手 给我一个follow或star。
🗺参考文献
- 标题: 【论文】精读笔记1-前沿-跨地域资源预留调度
- 作者: Fre5h1nd
- 创建于 : 2023-12-06 16:00:23
- 更新于 : 2024-10-08 11:39:55
- 链接: https://freshwlnd.github.io/2023/12/06/literature/literatureNotesIntensive1/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。