将 automatic_scaling max_idle_instances 设置为零 (0) 有啥作用?
Posted
技术标签:
【中文标题】将 automatic_scaling max_idle_instances 设置为零 (0) 有啥作用?【英文标题】:What does setting the automatic_scaling max_idle_instances to zero (0) do?将 automatic_scaling max_idle_instances 设置为零 (0) 有什么作用? 【发布时间】:2018-05-09 00:49:03 【问题描述】:将 automatic_scaling max_idle_instances 设置为零 (0) 有什么作用?
automatic_scaling:
max_idle_instances: 0
min_idle_instances: 0
它是否会导致活动实例在处理完当前请求后立即关闭?
【问题讨论】:
【参考方案1】:从技术上讲,您甚至不能将 max_idle_instances
设置为 0
,您会在部署时看到此错误:
Error 400: --- begin server output ---
automatic_scaling.max_idle_instances (0), must be in the range [1,1000].
--- end server output ---
部署数量低于已部署版本的版本可能不会(立即)关闭已运行且超过新配置数量的空闲实例 - 限制不是“硬”限制,在某些情况下可以超过。例如,从Scaling elements 表中的automatic_scaling
行:
注意:在负载高峰后恢复到正常水平时,空闲实例的数量可能会暂时超过您指定的数量 最大。但是,您不会为多于 您指定的最大数量。
您还应该记住,此配置适用于 idle 实例,而不适用于 dynamic/active 实例(处理大部分流量的实例) .降低max_idle_instances
配置不会影响动态实例。
空闲实例仅服务于瞬时溢出流量 - 当前运行的动态实例无法在传入流量突然上升期间以可接受的延迟处理的请求,而 GAE 启动额外的动态实例。
来自上面引用的同一文档:
由于 App Engine 保留空闲实例,因此不太可能 该请求将进入待处理队列,除非在异常情况下 高负载尖峰。您将需要测试您的应用程序和预期 流量以确定要保留的理想实例数 保留。
【讨论】:
这个解释很有帮助,谢谢。不过请注意,我部署的服务的值为零,没有错误。因此,似乎可以将值设置为零。例如github.com/leighmcculloch/looks.wtf/blob/… 好的,我应该更具体一点 - 我得到的错误是针对使用appcfg.py
而不是 gcloud
部署的标准 env python 应用程序。我猜 SDK 可能会有所不同。以上是关于将 automatic_scaling max_idle_instances 设置为零 (0) 有啥作用?的主要内容,如果未能解决你的问题,请参考以下文章