gpt4 book ai didi

python - Google Cloud Run (GCR) 的 Gunicorn (with Flask) 参数 - 在 Dockerfile 中放置什么?

转载 作者:行者123 更新时间:2023-12-04 03:47:41 28 4
gpt4 key购买 nike

关闭。这个问题不符合 Stack Overflow guidelines 。它目前不接受答案。












想改进这个问题?更新问题,使其为 Stack Overflow 的 on-topic

1年前关闭。




Improve this question




寻求具有实际 GCR 经验的人的指导。你怎么处理这个?
我在 Google Cloud Run 中运行了一个 Docker 容器(大小约为 670mb),里面是我基于 Flask 的 Python 服务器,它目前由 Dockerfile 中的以下命令运行:

CMD exec gunicorn --bind 0.0.0.0:8080 --reload --workers=1 --threads 8 --timeout 0 "db_app.app:create_app()"
假设我每小时需要处理大约 300 个请求。
我应该在我的 exec 命令中指定多少个工作线程,才能最有效地使用 GCR 的功能?
例如,GCR 服务器的基本配置类似于 1 CPU 1gb RAM。
那么我应该如何将我的 Gunicorn 放在那里?也许我也应该使用 --preload ?指定 worker-connections
正如达斯汀在他的回答中引用的(见下文),谷歌官方文档建议在 Dockerfile 中写下这个:
# Run the web service on container startup. Here we use the gunicorn
# webserver, with one worker process and 8 threads.
# For environments with multiple CPU cores, increase the number of workers
# to be equal to the cores available.
CMD exec gunicorn --bind :$PORT --workers 1 --threads 8 --timeout 0 main:app
我不知道他们在 GCR 配置中的那个“1 CPU”上有多少个内核,所以我怀疑这个示例代码是否非常准确,它更有可能只是为了演示它的一般工作原理。因此,如果有人将 Gunicorn 服务器打包到 Google Cloud Run 中的容器中,我会非常感激(并且每个人都会)非常感激能够分享一些关于如何正确配置它的信息——基本上是在这个 Dockerfile CMD 行中放入什么而不是通用示例代码?更真实的东西。
我认为这是一个软件问题,因为我们正在谈论在 Dockerfile 中编写东西(问题已关闭并标记为“非 SO 范围问题”)。

最佳答案

guidance from Google是以下配置:

# Run the web service on container startup. Here we use the gunicorn
# webserver, with one worker process and 8 threads.
# For environments with multiple CPU cores, increase the number of workers
# to be equal to the cores available.
CMD exec gunicorn --bind :$PORT --workers 1 --threads 8 --timeout 0 main:app
使用 --preload可能会减少冷启动时间,但也可能导致意外行为,这在很大程度上取决于您的应用程序的结构。
你不应该使用 --reload在生产中。
您还应该绑定(bind)到 $PORT而不是硬编码 8080作为港口。

关于python - Google Cloud Run (GCR) 的 Gunicorn (with Flask) 参数 - 在 Dockerfile 中放置什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64897152/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com