python - 将我的 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 的日志
解决方案
您说您的应用程序超出了 GAE 标准内存。
您的应用程序在什么时候开始使用大量内存?如果您的应用在部署时立即开始消耗大量内存(甚至在收到 HTTP 请求之前),那么这可能就是问题所在。
我不完全理解这个问题,但是 GAE flex 在部署时启动了很多工作人员,我怀疑这些工作人员中的每一个都占用了大量的内存,并且它们加起来超过了你的内存限制。
尝试更新您的应用程序,以便稍后消耗内存,例如在收到第一个 HTTP 请求后。这为我解决了一个类似的问题。
推荐阅读
- v8 - 在 JSON 解析后获取解析值(嵌入式 v8)
- bash - 使用远程数据完成 Cobra 标志 bash
- c++ - 退出 PCL 查看器:即使窗口关闭,wasStopped() 也不会改变值
- django - 我正在尝试在 AWS 上发布销售商商店并使用 Apache
- javascript - 如何在 file_get_contents 和 echo $content 之后为数字着色;
- entity-framework-core - Entity Framework Core 2.1 - FromSql 方法中的通用模型
- python - 在 django 和 aws 中使用 crontab 发送数千封电子邮件
- python - 如何将可能格式错误的 xml 解析为数据框?
- c# - 带有 Web 套接字 MatchingTweetReceived 的 Twitter 流未在 twitterinvl 中触发
- elasticsearch - 如何配置 Java RestClient 以与 ElasticCluster 通信?