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

时间:2016-01-08 10:20:47

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

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

  1. 当工人正在处理数据时,CPU总是100%
  2. 当队列为空时,我们希望终止所有工作人员
  3. 根据队列的长度,我们需要一定数量的工作人员
  4. 但是,我发现很难找到一种在Google Compute Engine上自动扩展此功能的方法,因为它们似乎可以扩展到仅限实例的指标,例如CPU。来自documentation

      

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

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

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

    备份解决方案

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

2 个答案:

答案 0 :(得分:2)

截至2018年2月(测试版),这可以通过" Per-group metrics"在stackdriver中。

  

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

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

的更多信息

如何在这里发布的方法太长。

答案 1 :(得分:1)

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

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