【问题标题】:Reserved instances and warmup requests not working预留实例和预热请求不起作用
【发布时间】:2012-06-08 04:20:54
【问题描述】:

我一直无法让它正常工作,这太令人不安了:我已经配置了预热请求,但我从来没有看到它们通过,所以大约 10% 的请求会导致一个新实例被启动并请求接受30 秒或更长时间。而且由于持续的放缓,有时这些旋转需要比平时更长的时间并且会超时,这太可怕了。这是一个 spring 应用程序,启动速度非常慢,我可能会优化到不到 30 秒,但除此之外......我需要预热请求才能工作,因此实例在它们之前不会服务用户请求真的准备好了。

有人说,除非您有常驻实例,否则预热请求不起作用,这是有道理的,所以我注册了 336 小时/周的折扣实例小时,但一个小时后我仍然看不到创建任何预留实例。即使我杀死了所有动态的,也会创建新的动态。

所以我的具体问题是:我需要做任何其他事情来设置保留实例吗?一旦这些都启动了,这会打开预热请求吗?

我的应用设置:

空闲实例:自动自动

待处理延迟:5s-10s

已配置服务:预热请求

appengine-web.xml:

<warmup-requests-enabled>true</warmup-requests-enabled>
<threadsafe>true</threadsafe>

web.xml:

   <servlet>
   <servlet-name>_ah_warmup</servlet-name>
   <servlet-class>com.google.apphosting.utils.servlet.WarmupServlet</servlet-class>
   </servlet>
   <servlet-mapping>
   <servlet-name>_ah_warmup</servlet-name>
   <url-pattern>/_ah/warmup</url-pattern>
   </servlet-mapping>

我的主要 Spring Dispatcher servlet 和 appstats servlet 也有:

   <load-on-startup>1</load-on-startup>

【问题讨论】:

  • 我认为您在这里混淆了 3 个不同(且独立)的概念:预热服务、常驻实例和折扣实例/小时
  • 我也有同样的问题。与您的配置唯一不同的是没有您粘贴的 web.xml 片段。我认为在 appengine-web.xml “true”中启用就足够了。无论如何,我的结果和你说的一样..
  • @alex 是的,我很害怕,但我找不到任何关于常驻实例的文档,而热身对常驻实例的依赖只是我在一些帖子中读到的内容。你能添加答案并帮助我解开吗?谢谢。
  • 没关系,想通了,我会发布答案

标签: java google-app-engine


【解决方案1】:

我自己想出来的。更好的 Google 搜索找到了正确的文档页面:

https://developers.google.com/appengine/docs/adminconsole/performancesettings

预留实例是在您指定空闲实例时创建的。所以我将 Idle Instances 设置从 auto/auto 更改为 2/auto。就是这样!

性能现在非常好且稳定,因此我建议任何拥有付费应用的人指定至少 1 个空闲实例。

我也确实看到了新动态实例的预热请求,因此保留实例确实是预热的要求。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多