Gunicorn + Flask + GCR(Google cloud RUN)在GCP上无法正常工作

问题描述 投票:0回答:1

我用 python 开发了一种算法,并使用 docker 镜像将其部署在 GCP Cloud RUN 上。附加的 alognwith 是相同的 dockerfile。


# Command to run the application
CMD ["gunicorn", "-b", "0.0.0.0:8080", "main:app", "--workers", "4", "--timeout", "600", "--preload"]

问题是,当我在 GCR 上触发代码时,它运行不均匀...它返回 504 错误 enter image description here 另外,cloud RUN 配置有 4 个 CPU 和 16 GB 内存。我已将 GCR 上的最大实例设置为 5 ,将每个实例的最大并发请求设置为 10 。 Gunicorn 命令应该是什么样子?

flask gunicorn google-cloud-run
1个回答
0
投票

1.超时问题:

默认情况下,Cloud Run 请求最多可以运行 5 分钟(300 秒)。如果您的工作线程花费的时间超过此时间,Cloud Run 将使用 SIGKILL 终止它。

如何增加超时: 您可以使用 GCP Console 或命令行配置服务的超时。最大超时为 60 分钟(3600 秒)。

设置超时的命令(最长 60 分钟):

gcloud run services update <SERVICE_NAME> --timeout=<TIME_IN_SECONDS>

例如,将超时设置为 10 分钟(600 秒):

gcloud run services update <SERVICE_NAME> --timeout=600

2.内存不足 (OOM) 问题:

如果您的 Cloud Run 容器被 SIGKILL 终止,则它可能会耗尽内存。 Cloud Run 使用资源限制,当您的容器超过内存限制时,它就会被终止。

如何增加记忆力: Cloud Run 允许您为每个容器分配最多 32 GB 的内存。您可以增加内存限制以防止 OOM 问题。

gcloud run services update <SERVICE_NAME> --memory=<MEMORY_LIMIT>

例如,将内存限制设置为 2 GB:

gcloud run services update <SERVICE_NAME> --memory=2Gi

© www.soinside.com 2019 - 2024. All rights reserved.