【发布时间】:2013-01-01 13:49:35
【问题描述】:
我有一个低负载/零星负载的应用程序,启动新实例(大约 10 秒)导致的延迟远远超过处理我的请求所需的时间,这通常在 500 毫秒内完成。
所以为了避免产生新实例(“加载请求”)导致的延迟峰值,我做了以下两个设置:
- set min idle instances = max idle instances = 1,确保始终有一个实例在运行(一个实例足以处理我的流量);和
- 将挂起延迟设置为 15 秒,以便 GAE 最多等待 15 秒,让一个常驻实例空闲,而不是启动一个新实例。
计费已激活。但是,GAE 仍会启动新实例,从而导致无法接受的延迟。这是为什么?
在日志中我可以看到我的请求总是在不到 500 毫秒内返回;一个请求不可能排队长达 15 秒。
对此我能做些什么?非常感谢任何帮助。
更新:我的解决方案是设置一个每 5 分钟发出一次请求的 cron 作业,以始终运行动态实例。事实证明(见下面的答案),空闲实例是为疯狂的负载峰值保留的,而不是我 99% 的时间处于低负载情况。
【问题讨论】: