首页 > 解决方案 > 将我的 Django/Python 应用程序从 App Engine 标准环境转换为灵活环境

问题描述

我正在尝试将我的 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

标签: pythondjangogoogle-app-engineapp-engine-flexible

解决方案


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

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

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

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


推荐阅读