GAE 标准实例生命周期

GAE Standard instance lifetime

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

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

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

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

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

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

日志:

内存:

CPU:

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

Auto Scaled 服务有一个或多个始终 运行 的实例。当没有流量时,可以停止手动或基本扩展服务。您可以在 app.yaml.

中设置缩放行为

本文 link 将帮助您了解 App Engine 的生命周期。

Instance life cycle

此 link 记录了缩放的 app.yaml 设置:

Scaling elements

使用自动缩放的示例 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