【问题标题】:Google Compute Engine auto scaling based on queue length基于队列长度的 Google Compute Engine 自动缩放
【发布时间】:2016-04-12 23:46:21
【问题描述】:

我们在 Google Compute Engine 上托管我们的基础架构,并正在研究针对实例组进行自动缩放。我们对队列中的二进制数据进行了大量批处理。在我们的例子中,这意味着:

  1. 当工作人员处理数据时,CPU 始终为 100%
  2. 当队列为空时,我们希望终止所有工作人员
  3. 根据队列的长度,我们需要一定数量的工人

但是,我发现很难找到一种在 Google Compute Engine 上自动扩展此功能的方法,因为它们似乎可以根据 CPU 等仅实例指标进行扩展。来自documentation

并非所有自定义指标都可以由自动缩放器使用。选择一个 有效的自定义指标,该指标必须具有以下所有内容 属性:

  • 指标必须是每个实例的指标。
  • 该指标必须是有效的利用率指标,这意味着来自该指标的数据可用于按比例放大或缩小 虚拟机的数量。

如果我正确阅读了文档,这是否会导致难以在全局队列长度上使用自动缩放?

备份解决方案

  1. 使用 Google Cloud API 编写一个简单的自动缩放处理程序,以使用 Instances API 创建或销毁新工作线程
  2. 使用实例组编写一个简单的自动缩放处理程序,然后使用 InstanceGroups: insert 手动插入/删除实例
  3. 使用InstangeGroupManagers: resize 编写一个简单的自动缩放处理程序
  4. 创建一个自定义的每实例指标,用于衡量所有工作人员的len(queue)/len(workers)

【问题讨论】:

标签: google-compute-engine google-cloud-platform


【解决方案1】:

从 2018 年 2 月(测试版)开始,这可以通过 stackdriver 中的“每组指标”实现。

每组指标允许使用标准或自定义指标进行自动扩缩 不导出每个实例的利用率数据。相反,该组 基于适用于整个组的值进行缩放,并且 对应于该组有多少工作可用或有多忙 该组是。该组根据该组的波动进行缩放 指标值和您定义的配置。

更多信息https://cloud.google.com/compute/docs/autoscaler/scaling-stackdriver-monitoring-metrics#per_group_metrics

操作方法太长,无法在此处发布。

【讨论】:

    【解决方案2】:

    据我了解,这尚未实施(截至 2016 年 1 月)。目前,自动缩放仅针对 Web 服务场景,您希望从您的机器提供网页/其他 Web 服务,并为流量峰值保留一些合理的空间(例如,在 CPU 或其他指标方面)。然后系统将调整实例/虚拟机的数量以匹配您的目标。

    您正在寻找批处理场景的自动缩放功能,但目前无法满足此需求。

    【讨论】:

      猜你喜欢
      • 2012-11-16
      • 2020-09-30
      • 2022-12-13
      • 1970-01-01
      • 2015-12-14
      • 2018-12-11
      • 2019-01-31
      • 2016-05-13
      • 2021-04-17
      相关资源
      最近更新 更多