java – 保留的实例和预热请求不起作用

我从来没有能够让这个工作得非常正确而且非常令人不安:我已经配置了热身请求,但我从未看到它们通过,因此大约10%的请求导致新实例被启动并请求花费30秒或者更差.而且由于持续的减速,有时这些旋转需要比平时更长的时间和超时,这是非常可怕的.它是一个弹簧应用程序,因此启动速度非常慢,我可能可以优化不到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调度程序servlet和appstats servlet也有:

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

最佳答案 自己搞清楚了.更好的Google搜索显示了正确的文档页面:

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

指定空闲实例时会创建预留实例.所以我将Idle Instances设置从auto / auto更改为2 / auto.而已!

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

我也确实看到现在为新动态实例提出的热身请求,因此保留实例确实是预热的要求.

点赞