在我的appengine标准(java11)上,首次请求的响应时间长(+40秒)

问题描述 投票:0回答:1

我刚刚将我的应用程序部署在应用程序引擎(www.mibar.es)中,当长时间不使用它时,唤醒并处理第一个请求需要40秒钟以上的时间。在那之后,需要花费一秒钟来处理下一个请求。我该如何减少时间?为什么不总是准备好?如何使它时刻准备就绪?

我在GCP控制台上没有显示任何错误,并且正在搜索我发现的有关https://cloud.google.com/appengine/docs/standard/java11/configuring-warmup-requests#enabling_warmup_requests的相同问题>

因此,它应该包含在yaml文件中,用于:

inbound_services:
- warmup

而且我想知道是否还有其他我应该做的事情,或者是否有人遇到过相同的问题:

runtime: java11
env: standard
instance_class: F4
handlers:
  - url: /(.*)
    script: auto
    secure: always
  - url: .*
    script: auto
automatic_scaling:
  min_idle_instances: automatic
  max_idle_instances: automatic
  min_pending_latency: automatic
  max_pending_latency: automatic
  max_instances: 1
network: {}

具有最小实例1的新UPDATED配置Yaml仍需要+30来发送第一个请求:


runtime: java11
env: standard
instance_class: F4
handlers:
  - url: /(.*)
    script: auto
    secure: always
  - url: .*
    script: auto
automatic_scaling:
  min_idle_instances: automatic
  max_idle_instances: automatic
  min_pending_latency: automatic
  max_pending_latency: automatic
  min_instances: 1
  max_instances: 1
network: {}

感谢您的帮助,如果您需要其他任何配置文件,请告诉我。

我刚刚将我的应用程序部署在应用程序引擎(www.mibar.es)中,当长时间不使用它时,唤醒并处理第一个请求需要40秒钟以上的时间。在那之后,......>

google-app-engine
1个回答
1
投票

使用您当前的设置,预计会在一段时间后发生。如果您的应用程序未收到任何请求,它将缩减为0个实例,因此,一旦请求到达,它就必须再次创建一个实例来满足流量需求,并且此“延迟”会添加到请求中。

Warmup请求将有助于在增加应用程序负载时加快创建实例的过程。但正如文档所述,有时会发出加载请求,而不是发出预热请求,特别是在应用程序有0个实例在服务并且必须创建另一个实例的情况下:

[在某些情况下,将发送加载请求:例如,如果实例是第一个正在启动的实例,或者流量急剧增加,则>]

为了克服这个问题,您至少可以运行1个实例,甚至可以使用min_idle_instances

© www.soinside.com 2019 - 2024. All rights reserved.