为什么GAE启动了第二个实例,其中Max Idle Instances设置为1

时间:2012-06-05 07:20:23

标签: google-app-engine

我使用启用了结算状态的Google Ap Engine 空闲实例设置为:(1 - 1)

enter image description here

在我的服务中只有2个客户端,有时我看到了第二个实例。 麻烦的是,启动新实例需要15秒(spring和co ..)。

enter image description here

对于一个实例,高达80Mb的内存是多少? 记录新实例:/ _ah / warmup 200 14580ms 0kb
第二个实例在几秒钟后消失。

为什么有3-4个请求,GAE运行第二个实例?第一个什么都不做(差不多)!

我试图修改“Pending Latency”但没有成功。

解决方案? :)

THX

2 个答案:

答案 0 :(得分:3)

您已经要求提供一个空闲实例。提供请求时,实例不会空闲。因此,App Engine会旋转一个新实例以维护您请求的空闲实例数。

答案 1 :(得分:1)

如果常驻实例被视为“太忙”而无法处理请求,则App Engine将启动另一个实例。即使流量非常低,如果应用程序同时处理足够的请求,AE也可能决定需要另一个实例来提供优质服务。你是正确的,增加挂起延迟将减少另一个实例启动的机会,但你不能完全禁止动态实例。

此外,您是否启用了多线程?如果没有,那么驻留实例即使只处理一个请求也会忙。如果您的代码是线程安全的,则可以启用多线程并同时处理与实例同时发出的更多请求。

由于流量非常低且实例数量非常少,App Engine在决定是否需要新实例时没有大量信息。您将看到更好的利用率和更少的虚假实例以及更多流量。