ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

容量推荐引擎:基于吞吐量和利用率的预测缩放

2022-05-22 00:31:07  阅读:159  来源: 互联网

标签:服务 容量 缩放 吞吐量 CRE TPC 利用率


容量推荐引擎:基于吞吐量和利用率的预测缩放

image

本文介绍了一种容量推荐模型,实现方式相对相对比较简单,且已在Uber内部使用,可以依照文中的方式开发一版容量推荐系统。

译自:Capacity Recommendation Engine: Throughput and Utilization Based Predictive Scaling

目录

简介

容量是服务可靠性的关键部分。为了支持不同的业务单元,Uber的服务需要足够的资源来处理每天的峰值流量。这些服务部署在不同的云平台和数据中心上。手动管理容量通常会导致过度分配资源,导致资源利用率低下。Uber构建了一个自动扩缩容服务,用于管理和调节上千个微服务的资源。目前的自动扩缩容服务单纯基于资源利用率指标实现的。最近我们构建了一个新的系统,称为容量推荐引擎(Capacity Recommendation Engine (CRE)),新的算法结合了吞吐量和利用率,并使用机器学习模型来实现扩缩容。该模型提供了黄金指标和服务容量之间的对应关系。通过反应性预测,CRE可以基于线性回归模型和峰值流量估算出区域服务的容量。除了容量,分析报告还可以告诉我们不同区域服务的特性和性能回归。本文将会深入介绍CRE模型以及系统架构,并提供该模型的一些分析结果。

使用的指标

在容量管理方面,利用率(utilization)是最常用的扩缩容指标。在CRE中,除了利用率,还使用吞吐量(throughput)作为另一个容量评估的重要指标。吞吐量代表了业务产品需求。在服务层面,可以转换为每个实例的RPS(每秒请求数)。每当推出新产品以及变更依赖的扇出模式时,都会直接导致服务吞吐量的变化,从而影响容量需求。我们的目标是获取满足利用率需求的服务容量或实例数。我们将实例的CPU core乘以实例数,得到服务所需的总CPU core数。通过将资源分配引入预测模型,就可以将指标与服务容量关联起来。CRE使用吞吐量和资源分配时序数据来构造线性回归模型。

image

图1:CRE使用的黄金指标

CRE算法

Uber使用了多家云厂商,每家厂商都有不同的网络栈、硬件类型和流量模型。我们将每个区域作为独立的扩缩容目标,通过单独进行线性回归分析来考虑不同环境下的差异。从结果中可以看出各自的性能差异,并进一步影响缩放组中的容量。

CRE的推荐流程包括如下步骤:

  • 评估峰值吞吐量
  • 定义目标利用率
  • 创建线性回归模型
  • 生成推荐结果
  • 限制服务使用的资源

CRE使用峰值吞吐量和目标利用率,以及步骤3生成的指标关系来计算容量实例数。每个步骤都对最终的推荐容量和服务可靠性至关重要。下面将深入了解一下各个步骤。

评估峰值吞吐量

由于扩缩容的频率不同(小时、天、周),其需要评估的吞吐量也不同。

例如按周来评估吞吐量:将目标吞吐量 RPSTarget作为下一周评估的峰值流量。CRE使用的默认吞吐量评估方式为时序分解模型。使用基于STL的时序分解方式将全局吞吐量时序数据分为趋势(trend)、季节性(seasonality)和其他(residue)三部分。这三部分之和表示了原始全局吞吐量指标。seasonality表示一个频率模式,trend表示跨天的模式。下例以天作为seasonality,展示了美国/拉丁美洲的上下班的峰值。residue 为不匹配trend或seasonality的剩余原始指标,通常表示噪音。使用时序分解结果,CRE可以为大多数服务提供可靠的预测。

image

图2吞吐量分解结果

定义目标利用率

目标利用率(UtilizationTarget)是CRE中用来推导容量数值的一个信号。该信号描述了未来服务资源的最大利用率。为了有效利用资源,应该尽量提高利用率,以便为未预测到的情况预留一部分缓冲余地。正常情况下,每天的流量不会超过目标利用率。目标利用率应该包括某些特殊场景,如区域下线,此时该区域的流量会转移到其他区域,此时由于流量的上升,利用率也会随之上升。

线性回归:归一化吞吐量和利用率

对于资源密集型的服务,利用率、吞吐量、容量、服务以及硬件性能都是常见的关联因子,且相互影响。一旦其中一个因子发生了变化,通常也会影响到其他因子。由于我们的目标是评估服务容量,因此需要确定这些信号之间的关系。CRE使用利用率和归一化吞吐量来构建一个线性回归模型。通过将吞吐量除以实例核数,可以得出归一化吞吐量--称之为每核吞吐量(TPC)。通过归一化吞吐量指标,我们可以将相关因子范围缩小到利用率和TPC。通过线性回归结果展示的斜率和截距可以观察到性能变化曲线。下面是利用率和TPC的关系公式:

\[Utilization =

标签:服务,容量,缩放,吞吐量,CRE,TPC,利用率
来源: https://www.cnblogs.com/charlieroro/p/16294734.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有