谷歌应用引擎(GAE)的基本扩展后端实例只提供一个请求并取消部署



我已经在App Engine中部署了一个应用程序(前端和后端)。首先,我使用的是免费层,我选择了默认的F1作为前端,B2作为后端。我不完全理解B和F实例之间的区别,但根据它们的名称,我分别选择它们作为后端和前端。

我的后端是一个Flask应用程序,它从CCD_ 1上的Firestore读取一些数据;预高速缓存";它适用于未来的所有请求。这大约需要20-30秒才能收到第一个请求,所以我真的不希望后端实例一直处于未部署状态。

现在,我的后端成功地服务了一个请求(我从浏览器发出的请求),然后立即被取消部署(基本上,在服务请求后,我在应用程序引擎面板中看不到任何活动实例)。这意味着每个请求在服务器启动时都会再次出现我不希望出现的长延迟。我不知道为什么会发生这种情况,因为我已经将空闲超时设置为5分钟。我知道这对我的Flask应用程序来说不是问题,因为它在本地机器上的请求后不会崩溃,而且我已经完成了它的内存分析,这是B2限制的范围。这是我的后台应用程序:

runtime: python38
service: api
env_variables:
PORT: 8080
instance_class: B2
basic_scaling:
max_instances: 1
idle_timeout: 5m

任何见解都将不胜感激!

根据您公开的信息和行为,请允许我向您解释两个缩放模型的行为都是按照设计的。

"自动缩放:它根据请求率、响应延迟和其他应用程序指标创建实例。您可以为每个指标指定阈值,以及保持始终运行的最小实例数。

基本缩放:只有当应用程序收到请求时,基本缩放才会创建实例。当应用程序变为空闲时,每个实例都将关闭。基本缩放是间歇性或由用户活动驱动的工作的理想选择。">

请使用以下URL文档作为这些模型的参考,以及更多实例的管理方法。

2021年12月10日添加的信息:

你好,

我认为正确的术语是"关闭"而不是"未部署"禁用应用程序。查看实例状态";手动或基本缩放服务的实例可以运行或停止。相同服务和版本的所有实例共享相同的状态"然后查看缩放类型";当应用程序收到请求时,基本缩放会创建实例。当应用程序变为空闲时,每个实例都将关闭。基本缩放是间歇性或由用户活动驱动的工作的理想选择"以及用于基本缩放的表的启动和关闭行";实例是根据需要创建的,用于处理请求,并在空闲时根据idle_timeout配置参数自动关闭。手动停止的实例在被强制终止之前有30秒的时间完成处理请求"以及"按比例缩小";您可以指定空闲实例的最小数量。根据请求量为您的应用程序设置适当数量的空闲实例可以让您的应用软件以很小的延迟为每个请求提供服务";。

你能核实一下吗:

  • 实例没有手动停止
  • 那个实例正在变得空闲
  • 没有后台线程
  • 如果将max_instances设置为2时功能相同
  • 没有显示实例关闭的日志
  • 他们正在达到更新了idle_timeout集的版本

相关内容

  • 没有找到相关文章

最新更新