Google App Engine实例会快速关闭

ada*_*dam 8 python google-app-engine python-2.7

所以我一直在使用应用程序引擎很长一段时间没有任何问题.我知道如果应用程序暂时没有被访问者点击,那么实例将关闭,并且第一个访问该网站的访问者将在新实例启动时有几秒延迟.

但是,最近似乎实例只能在很短的时间内(有时不到一分钟)保持活动状态,如果我已经启动并运行了一个实例,并且我刷新了一个应用程序网页,它仍会启动另一个实例(它启动的页面是最小的主页HTML,不应该需要太多的CPU /内存).看着我的日志,它不断启动新的实例,这在以前从未如此.

关于我应该看什么的任何提示,或者为什么会发生这种情况的任何想法?

此外,我正在使用Python 2.7,线程安全,python_precompiled,热身入站服务,NDB.

更新:

因此,我将我的应用更改为至少有一个空闲实例,希望这可以解决问题,但即使一个常驻实例已在运行,它仍然会启动新实例.因此,当只有1个驻留实例(除了我之外我没有得到任何流量),并且我转到我的应用程序上的另一个页面时,它仍然启动了一个新实例.

另外,正如koma指出的那样,我将Pending Latency更改为1.5s,但这似乎并没有帮助.

实例的内存使用量总是大约为53MB,这在被调用的页面没有做太多时令人惊讶.我正在使用F1前端实例类,其限制为128,但无论如何,53MB似乎都应该做得很高.它首次启动时是否可以接受?

更新2:我刚刚在仪表板中注意到,在过去的14个小时内,request/_ah/warmup响应了24 404个错误.这有关系吗?他们为什么会回复404响应状态?

主要问题:为什么它会不断启动新实例(即使没有流量)?特别是在已经存在的情况下,为什么它们会如此迅速地关闭?

kom*_*oma 4

我的解决方案是增加待处理延迟时间。

如果网页同时触发 3 个 ajax 请求,AppEngine 就会为额外的请求启动新实例。配置最小挂起延迟时间(将其设置为 2.5 秒)后,同一实例正在处理所有三个请求,并且吞吐量是可以接受的。

我的项目仍然有很少的负载/流量...所以除了提高待处理延迟之外,我在 Pingdom 上开设了一个帐户,并将其配置为每分钟 ping 我的 Appengine 项目。

两者的结合使我拥有一个保持活动状态的实例,并且在大多数时间都在满足所有请求。当确实有必要时,它将扩展到新的实例。