首页 > 解决方案 > GAE 标准实例生命周期

问题描述

为了试用 Google Cloud Platform 和 Mongodb Atlas,我注册了这两个平台并创建了一个托管在 App Engine Standard 上的简单应用程序,该应用程序连接到 Atlas。

更新后设置一个新的超时,每分钟更新5条记录的集合,每条记录都有一个名称和last_updated字段,用当前日期更新last_updated字段。

此外,使用 Express 后端,该应用程序会在 apppot url 上显示最后更新日期(下面的日志中的 GET)。

运行大约 2 小时后,容器被 9 信号杀死。我想知道这是什么原因?启动后2小时?最后一次前端通话后 1 小时?为什么它不继续运行 settimeout / express 进程?

内存似乎是恒定的(见下面的屏幕)

此外,正如 CPU 日志显示的那样,大约 5 分钟后似乎有 0 CPU,而日志显示完全相同的输出,直到关机。那里发生了什么?

日志: 日志

记忆: 记忆

中央处理器: 中央处理器

标签: node.jsgoogle-app-enginegoogle-cloud-platformmongodb-atlas

解决方案


对于 App Engine 标准,实例可以运行或停止。

自动缩放服务有一个或多个始终在运行的实例。手动或基本扩展服务可以在没有流量时停止。您可以在 app.yaml 中设置缩放行为。

此链接将帮助您了解 App Engine 的生命周期。

实例生命周期

此链接记录了用于缩放的 app.yaml 设置:

缩放元素

具有自动缩放功能的示例 app.yaml:

service: my-service
runtime: python27
api_version: 1
instance_class: F2
automatic_scaling:
  target_cpu_utilization: 0.65
  min_instances: 5
  max_instances: 100
  min_pending_latency: 30ms  # default value
  max_pending_latency: automatic
  max_concurrent_requests: 50

推荐阅读