我从来没有能够让这个工作得非常正确而且非常令人不安:我已经配置了热身请求,但我从未看到它们通过,因此大约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个空闲实例.
我也确实看到现在为新动态实例提出的热身请求,因此保留实例确实是预热的要求.