【问题标题】:Converting my Django/Python app from App Engine Standard Environment to Flexible Environment将我的 Django/Python 应用从 App Engine 标准环境转换为灵活环境
【发布时间】:2021-10-11 10:23:20
【问题描述】:

我正在尝试将我的 Django/Python 应用程序从 Google App Engine 标准环境转换为灵活环境,这主要是因为应用程序变慢并且不断达到软内存限制,并建议我升级到更大的实例类。我已经上了最高的实例课。我的问题是当我尝试部署构建成功但更新服务时不断收到错误消息。

“您的部署未能在分配的时间内恢复正常,因此被回滚。如果您认为这是一个错误,请尝试调整 'readiness_check' 部分中的 'app_start_timeout_sec' 设置。”

我已尝试调整 readiness_check 部分以允许更多时间,但它似乎需要更长的时间才能给我同样的错误。我已尝试使用谷歌搜索此问题并添加更多内存,但仍然显示相同的错误。我被困在这一点上,我不确定还能去哪里看。

这里是标准环境下成功部署的app.yaml

entrypoint: gunicorn -b :$PORT xpotools.wsgi

instance_class : F4_1G

automatic_scaling:
  min_instances: 5
  min_pending_latency: 30ms
  max_pending_latency: 4s
  max_concurrent_requests: 20
  min_idle_instances: 3

inbound_services:
- warmup

handlers:
- url: /static
  static_dir: static/
  secure: always

- url: /.*
  script: auto
  secure: always

- url: /_ah/warmup
  script: auto

这是我尝试部署到柔性环境的 app.yaml

env: flex

runtime_config:
    python_version: 3.7

resources:
  cpu: 1
  memory_gb: 6
  disk_size_gb: 20

entrypoint: gunicorn -b :$PORT xpotools.wsgi 

我错过了什么吗?

来自 gcloud app deploy --versbosity=debug 的日志

https://docs.google.com/document/d/1OLyqg5rQ4vJoXH3XyI476F5ImE0q6XlzoPPjCagS5E0/edit?usp=sharing&resourcekey=0-bpn9nVX_-SrLsYAHwtWPKA

【问题讨论】:

  • 您能否尝试使用标志“--verbosity=debug”部署您的应用程序并分享输出?
  • 这是日志中的最后一条消息。我试图把整个日志,但它的评论太长了。 [DEADLINE_EXCEEDED]:处理任务 /app-engine-flex/flex_await_healthy/flex_await_healthy>2021-08-09T13:49:52.487Z20758.ue.0 时发生内部错误:您的部署未能在分配的时间内变得健康,因此被回滚。如果您认为这是一个错误,请尝试调整“readiness_check”部分中的“app_start_timeout_sec”设置。
  • 你能用完整的日志更新你的问题吗?
  • 我尝试将其添加到代码块中,但仍然太长。我在帖子底部的链接中添加了它
  • 我建议您检查此post,它显示了与您类似的问题。总之,它建议禁用健康检查或自定义它们。如果这不起作用,我认为你能做的最好的就是在 gcp support 中打开一个案例。

标签: python django google-app-engine app-engine-flexible


【解决方案1】:

您说您的应用超出了 GAE 标准内存。

您的应用从什么时候开始使用大量内存?如果您的应用在部署时立即开始消耗大量内存(甚至在收到 HTTP 请求之前),那么这可能就是问题所在。

我不完全理解这个问题,但是 GAE flex 在部署时启动了很多工作人员,我怀疑这些工作人员中的每一个都占用了大量内存,并且它们加起来超过了你的内存限制。

尝试更新您的应用,以便稍后消耗内存,例如在收到第一个 HTTP 请求后。这为我解决了一个类似的问题。

【讨论】:

  • 我尝试将我的应用程序转换为 flex,因为它已经达到标准中最大实例类的软内存限制。我如何确定它何时开始消耗大量内存?我要去哪里看?
  • 请参阅stackoverflow.com/questions/55228492/… 了解我的情况的更多详细信息。它实际上是在解决一个 GAE 标准问题,因此它可能会在这方面以及 GAE flex 方面对您有所帮助。
  • 非常感谢。这解决了我的问题,这意味着我什至不必转换为 flex。
猜你喜欢
  • 2020-11-23
  • 1970-01-01
  • 1970-01-01
  • 2018-03-12
  • 2019-01-30
  • 1970-01-01
  • 2018-07-01
  • 1970-01-01
  • 2016-09-26
相关资源
最近更新 更多