【问题标题】:Google App Engine keeps deploying a new instance, or none at all (server error)Google App Engine 不断部署新实例,或者根本没有部署(服务器错误)
【发布时间】:2018-12-20 01:14:58
【问题描述】:

我在 GAE 上构建并部署了一个应用程序。昨天似乎一切正常,每隔几秒向应用程序发送一次请求就会成功,响应时间约为 2.5 秒。如今,GAE 不断为每个请求部署一个新实例,或者甚至无法创建一个实例,从而导致无法接受的高响应时间(以及高得多的费用)甚至 500 个服务器错误。

我尝试暂停并重新启动应用程序几次,再次为几个请求工作,然后恢复到相同的行为。在控制台上,我可以看到一个新实例在服务请求后立即关闭,或者在服务器错误的情况下,GAE 无法部署新实例。

我检查了控制台上的配额,似乎没有任何迹象表明我不能从同一个 IP 发送多个请求。

有没有人遇到过此类问题,如果有,可能是什么原因和补救措施?请注意,我对 GAE 还很陌生,所以现在不知道从哪里开始。

编辑:刚刚意识到一个实例使用的平均内存(在我的例子中是 F2,它给你 256MB)非常接近最大值(250MB)。这可能是问题吗?我将升级到 F4 (512MB) 看看会发生什么。

【问题讨论】:

标签: python google-app-engine


【解决方案1】:

根据documentation - 可以根据请求率、响应延迟和其他应用程序指标创建一个新实例。

因此,GAE 标准实例的预期行为会根据它们接收的流量进行扩展和缩减。

此外,如果达到实例类的最大内存使用量,将触发关闭过程,如here 所述。

至于创建新实例失败,如果没有 Stackdriver Logging 信息,很难判断是什么原因造成的。在我的脑海中,您可能会因为到达 response limit 而收到 HTTP 500 错误,但也可能由于任何其他原因而发生。

最后,考虑到问题的性质,我认为使用更好的实例类测试 GAE 应用程序的行为并比较结果是一个好主意。如果您在使用 F4 实例类时不再遇到这种情况,可以肯定地认为以前的实例类根本不足以满足应用程序的要求。

【讨论】:

  • 感谢 Maxim,升级到 F4 实例后,即使在负载测试下也没有看到任何进一步的错误(这表明缩放工作很有魅力)。很幸运,控制台向我显示了每个实例消耗的平均内存,并且意外地注意到了这一点。不幸的是,日志中唯一的错误消息是“无法启动实例”。希望这个问题和您的回答能帮助其他面临类似问题的人。谢谢!
  • @michaelp 感谢您的更新。如果我的回答对您有帮助,请考虑接受它,以便提高知名度,因为正如您所说,它可能对其他人有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-19
  • 2020-07-06
相关资源
最近更新 更多