node.js - 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,而日志显示完全相同的输出,直到关机。那里发生了什么?
解决方案
对于 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
推荐阅读
- oracle - all_identifiers 表中未出现同义词
- javascript - 如何使 javascipt 选项卡与 html/css 网站一起使用
- python - 如何在 discord.py 中获取 Guild 实例?
- azure-cosmosdb - 如何在 Cosmos Db 中同步相关集合?
- angular - Angular:在 package.json 中分离脚本和依赖项
- php - 将 vuejs 与 userfrosting 框架一起使用
- java - 使用 Jooq JPADatabase 的 Gradle Java Spring Boot 项目未检测到实体
- r - 在R中将复杂列表转换为数据框
- r - 运行 R 的 Docker 容器中的“文件 '.Renviron' 无法打开读取”
- hibernate - 有没有办法为 UUID 类型配置默认类型映射