1

将 automatic_scaling max_idle_instances 设置为零 (0) 有什么作用?

automatic_scaling:
  max_idle_instances: 0
  min_idle_instances: 0

是否会导致活动实例在处理完当前请求后立即关闭?

4

1 回答 1

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 ---

部署数量低于已部署版本的版本可能不会(立即)关闭已在运行且超过新配置数量的空闲实例 - 该限制不是“硬”限制,在某些情况下可能会被超过。例如,从缩放元素automatic_scaling中的行:

注意:在负载峰值后恢复到正常水平时,空闲实例的数量可能会暂时超过您指定的最大值。但是,您不会为超过您指定的最大数量的实例付费。

您还应该记住,此配置适用于空闲实例,而不适用于动态/活动实例(处理大部分流量的实例)。降低max_idle_instances配置不会影响动态实例。

空闲实例仅服务于瞬时溢出流量 - 当前运行的动态实例在传入流量突然上升期间无法以可接受的延迟处理的请求,而 GAE 启动额外的动态实例。

来自上面引用的同一文档:

由于 App Engine 保留了空闲实例,因此请求不太可能进入待处理队列,除非出现异常高的负载峰值。您将需要测试您的应用程序和预期流量,以确定要保留的理想实例数量。

于 2017-11-25T06:02:31.200 回答