App引擎自动扩展配置

时间:2015-10-03 18:41:25

标签: google-app-engine autoscaling cost-management

我正在尝试通过设置automatic_scaling参数来减少我的Google App Engine帐单。平均而言,我的应用程序运行7-10个实例,其中2或3个空闲。但有时候,如附图中的3到6点之间,活动和空闲实例之间的差异非常大。此外,我想减少活动实例的数量,增加最终用户的响应时间(设置min_pending_latencymax_pending_latency)。但是,到目前为止,这些设置都没有起到任何作用。

这是我的app.yaml配置:

automatic_scaling:
  min_pending_latency: 250ms
  max_pending_latency: 750ms
  max_idle_instances: 2

Instances

1 个答案:

答案 0 :(得分:6)

同时设置min_pending_latency max_pending_latency会向自动缩放器发送混合消息。

更一般地说,您可以将自动缩放器调整为 包含您的费用(为max_idle_instances设置较低的值和/或为min_pending_latency设置较高的值),以提高可扩展性 - 也就是说,为流量激增保持较低的延迟(为min_idle_instances设置较高的值和/或为max_pending_latency设置较低的值。)

不要混合两种调整 - 根据我的经验,这种“混合信息”从不会对成本或浪涌期间的延迟产生良好影响。

是的,我努力让这些基本的信息成为Google Cloud Platform官方文档的一部分 - 它只需要比我希望的更长的时间,这就是为什么同时我发布的帖子这个答案。

更高级的替代方案,如果你非常肯定你的流量模式随着时间的推移,浪涌的可能性等等,就是从自动缩放模块切换到基本缩放模块甚至手动缩放模块,写作您自己的代码,可以通过Modules API启动和终止实例。

尽管如此,我不得不承认,对于我来说,这对于专门用于服务用户流量的模块(与任务队列或基于cron的“后端”工作相对)的模块从来没有最佳 - 我的用户的激增和时间模式从未正如分析过去的记录一样,这些都是可预测的。所以,最后,我总是回到(用于用户流量服务)旧的自动扩展,可能通过适度的调整 来降低成本,来改善可伸缩性,正如我上面推荐的那样。