【问题标题】:How exactly warmup requests works?预热请求究竟是如何工作的?
【发布时间】:2013-03-27 11:38:27
【问题描述】:

我们观察到加载请求的奇怪行为,我们希望分享这些请求以获得准确的答案。

我们从引入之日起就启用了预热请求处理程序,因为加载请求需要 15 到 25 秒。

我们一直使用旧的“always-on”功能,然后在新的计费系统下将“Application Settings”中的“Idle Instances”滑块配置为 1-Automatic(1 个预留实例)。

一切正常,因为大多数(不是全部,但记录在案的)加载请求已正确路由到 /ah/warmup。

我们的应用程序仅在意大利的工作时间使用,因此单个预留实例在夜间和周末浪费金钱,因此我们决定在两周前尝试将“空闲实例”滑块设置移动到自动-自动.

账单减少了,但在那之后所有加载请求都是面向前端的请求(或至少是任务队列/cron 请求)。在我们日志中的那两周内,/_ah/warmup 完全消失了。

两周后,我们决定将滑块设置恢复为 1-自动,并且下一个加载请求是在 /_ah/warmup 上。现在我们被困在 1-Automatic 上。

我们在官方文档中搜索了这种行为,但没有发现任何相关信息。

我们发现只有这个问题Reserved instances and warmup requests not working 陈述了同样的事情。

所以当“空闲实例”设置为自动-自动时,/_ah/warmup servlet 应该完全没用?还是我们的应用程序有问题?

【问题讨论】:

    标签: java google-app-engine


    【解决方案1】:

    是的,仅当您有空闲实例时才进行预热。如果您的一个空闲实例收到单个请求,无论是来自客户端还是来自 cron 作业,应用引擎都会立即调用 /_ah/warmup 以启动并维护一个空闲实例。

    如果您没有空闲实例,或设置延迟条,appengine 将不会发送预热请求。如果您处于高峰期,应用引擎也会跳过热身。

    至于为什么滑块卡住了,我不确定,也许你可以禁用应用程序并重新启用它。

    希望这会有所帮助。

    【讨论】:

    • 这是我凭经验理解的,但没有关于它的文档。
    猜你喜欢
    • 2011-06-26
    • 2021-08-15
    • 2012-06-08
    • 2011-10-11
    • 2013-07-05
    • 1970-01-01
    • 1970-01-01
    • 2014-09-29
    • 2011-06-01
    相关资源
    最近更新 更多