即使已经有实例在运行,我仍然会在某些请求上遇到冷启动。
我认为GAE会在后台启动某些实例,并将它们添加到仅在实例启动后才为请求提供服务的活动实例池中。不是吗?有没有一种配置GAE的方法?
相反,似乎某些请求正在等待新实例的整个启动过程,这可能需要长达10秒的时间,而使用现有实例时,仅会在几秒钟内满足所有基准流量
更新: 这是我的app.yaml配置:
runtime: nodejs10
env: standard
instance_class: F1
handlers:
- url: '.*'
script: auto
automatic_scaling:
min_instances: 1
max_instances: 3
答案 0 :(得分:0)
您要寻找的是Warmup requests:
预热请求是一种特定类型的加载请求 在任何活动之前,将应用程序代码提前放入实例 提出要求。手动或基本扩展实例没有收到
/_ah/warmup
请求。
并且来自Configuring warmup requests:
将应用的代码加载到新实例中可能会导致loading requests。加载请求可能导致请求延迟增加 为您的用户使用,但您可以使用 warmup避免这种延迟 请求。预热请求将您的应用代码加载到新实例中 在任何实时请求到达该实例之前。
并非100%完美-存在一些局限性,但这是次要的选择。
配置预热请求意味着:
app.yaml
文件中的inbound_services:
- warmup
Creating your handler用于'/ _ah / warmup'预热请求URL