Google Compute Engine根据队列长度自动缩放

Nik*_*s B 5 google-compute-engine google-cloud-platform

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

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

但是,我发现很难找到一种在Google Compute Engine上自动缩放的方法,因为它们似乎可以在仅实例的指标(例如CPU)上进行缩放。从文档中

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

  • 该指标必须是每个实例的指标。
  • 该指标必须是有效的利用率指标,这意味着该指标中的数据可用于按比例增加或减少虚拟机的数量。

如果我正确阅读了文档,这将使得很难在全局队列长度上使用自动缩放?

备份解决方案

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

Grz*_*nio 1

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

您正在寻找批处理场景的自动缩放功能,但目前尚未满足这一需求。