我是否应该期望 Google App Engine 随机重启实例?

我是否应该期望 Google App Engine 随机重启实例?

我有一个该应用程序实例(真丢脸),昨天在 australia-southeast1 地区运行。

昨晚是该应用的关键时刻;人们指望它能完美运行,但活动进行到一半时,实例突然消失了。大约 8 分钟后,一个新的实例被创建并继续为流量提供服务。

这是我应该预料到的吗?实例随机消失并重新启动?我意识到我应该运行几个版本,但如果两个版本同时重新启动怎么办?

应用程序(标准、简单的 Rails 应用程序)重新启动时,日志不会显示任何错误。日志之间只有 8 分钟的间隔,随后 Puma 会在新实例中启动。

CPU 使用率稳定,很少超过 5%。内存使用率约为 840MB,在重启前略有峰值,为 880MB。“磁盘字节数”稳定在 ~15KB/秒,在重启时出现大幅峰值,为 40MB/秒。

应用程序.yaml

entrypoint: bundle exec rackup -p $PORT
env: flex
runtime: ruby

handlers:
- url: .*
  script: main.app
  secure: always

automatic_scaling:
  min_num_instances: 1
  max_num_instances: 4
  cpu_utilization:
    target_utilization: 0.75

答案1

根据文档,意外重启主要有两个原因:

  • 每周重启一次实例[1]。
  • 健康检查给出的 HTTP 代码不同于 200 [2]。

如果您提供一些额外的信息,我们可以讨论。

答案2

我也有类似的问题;新的健康检查不检查申请,只有 VM 和 Docker(除非您设置它们来检查您的应用程序,而我没有),因此很明显问题出在应用引擎本身。

编辑:不确定为什么是负面的,但为了让这一点更清楚。

是的,您应该预料到它们会随机重启实例。您看到的行为不是由您的应用引起的。

相关内容