Google app engine Google应用程序引擎何时启动或停止实例?

Google app engine Google应用程序引擎何时启动或停止实例?,google-app-engine,go,Google App Engine,Go,我们有一个平均每秒处理0.5个请求的应用程序引擎应用程序,似乎所有这些请求都可以由运行Go应用程序作为主版本的同一实例来处理 然而,有时应用程序引擎会启动第二个实例(有时甚至是第三个实例),这在处理一两个请求之后似乎没有任何作用。这里有一个例子 手动关闭该实例似乎不会造成任何伤害,所以我的问题是,为什么App Engine在一段时间内没有收到任何请求后不杀死该实例?(上面的例子在过去的一个小时内有四个请求,请求/年龄比率往往更低) 更新: 类似的情况是在不同版本上启动实例。AppEngine似

我们有一个平均每秒处理0.5个请求的应用程序引擎应用程序,似乎所有这些请求都可以由运行Go应用程序作为主版本的同一实例来处理

然而,有时应用程序引擎会启动第二个实例(有时甚至是第三个实例),这在处理一两个请求之后似乎没有任何作用。这里有一个例子

手动关闭该实例似乎不会造成任何伤害,所以我的问题是,为什么App Engine在一段时间内没有收到任何请求后不杀死该实例?(上面的例子在过去的一个小时内有四个请求,请求/年龄比率往往更低)

更新: 类似的情况是在不同版本上启动实例。AppEngine似乎只是在几个小时没有收到任何请求后才终止实例

在应用程序设置下→ 演出
  • 空闲实例设置为自动–20
  • 挂起延迟设置为150ms–250ms
州的一部分:

实例中的缩放

每个实例都有自己的传入请求队列。App Engine监视每个实例队列中等待的请求数。如果应用程序引擎检测到应用程序的队列由于负载增加而变得太长,它会自动创建应用程序的新实例来处理该负载

当请求量减少时,App Engine还会反向扩展实例。这种扩展有助于确保应用程序的所有当前实例都被用于实现最佳效率和成本效益

它还说明您可以在管理控制台中执行“”和“”操作


尝试将“Idle instances”(空闲实例)字段设置为3-5,然后选择“optimize for low cost”(优化以获得低成本),看看这是否会影响实例的终止时间。

我希望知道在终止空闲实例的情况下/何时会进行哪些控制,但我看不到任何文档

为了避免启动过多的实例,我认为您在这里可以做的主要事情是增加挂起的延迟:

Pending Latency(挂起延迟)滑块控制请求在由应用程序默认版本的实例提供服务之前在挂起队列中花费的时间。如果最小挂起延迟较高,应用程序引擎将允许请求等待,而不是启动新实例来处理它们。这可以减少应用程序使用的实例小时数,但会导致更多用户可见的延迟

即使平均每小时只有4个请求,但如果恰好有两个请求间隔很近,我想它可能会启动一个新实例


您还可以在日志中看到一些关于它为什么启动新实例的少量信息。

不幸的是,“优化低成本”设置不再在该页面上。您现在似乎必须在.yaml文件中设置“最小/最大空闲实例”之类的内容。这个链接展示了如何使用Python进行设置,当然您也可以选择其他语言。值得一提的是,在我自己的低流量Go应用程序上,今天,我从来没有看到>1个实例,而且有时会降到零。