我正在尝试通过设置automatic_scaling
参数来减少我的Google App Engine帐单。平均而言,我的应用程序运行7-10个实例,其中2或3个空闲。但有时候,如附图中的3到6点之间,活动和空闲实例之间的差异非常大。此外,我想减少活动实例的数量,增加最终用户的响应时间(设置min_pending_latency
和max_pending_latency
)。但是,到目前为止,这些设置都没有起到任何作用。
这是我的app.yaml配置:
automatic_scaling:
min_pending_latency: 250ms
max_pending_latency: 750ms
max_idle_instances: 2
答案 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的“后端”工作相对)的模块从来没有最佳 - 我的用户的激增和时间模式从未正如分析过去的记录一样,这些都是可预测的。所以,最后,我总是回到(用于用户流量服务)旧的自动扩展,可能通过适度的调整 来降低成本,或来改善可伸缩性,正如我上面推荐的那样。