gpt4 book ai didi

python-3.x - Cloud Run Qs::max-instances + 并发 + 线程(gunicorn 线程)

转载 作者:行者123 更新时间:2023-12-02 19:33:28 25 4
gpt4 key购买 nike

(我正在学习 Cloud Run,承认这与开发或代码无关,但希望一些 GCP 工程师能够澄清这一点)

我有一个 PY 应用程序正在运行 - gunicorn + Flask...现在只是 PoC,这就是为什么要进行最少配置的原因。

cloud run deploy 具有以下标志:

--max-instances 1
--concurrency 5
--memory 128Mi
--platform managed

guniccorn_cfg.py 文件有以下配置:

workers=1
worker_class="gthread"
threads=3

我想知道:

1) max-instances::如果我要调整它,是否意味着在需要时会提供新的物理服务器机器?或者,该服务是否通过拉取容器镜像并在同一台物理服务器上简单地启动一个新的容器实例(docker run ...)来实现这一点,从而有效地与其他容器实例共享同一台物理机?

2) concurrency::一个正在运行的容器实例是否接收多个并发请求(例如,5 个并发请求由 3 个正在运行的容器实例处理)?还是每个并发请求触发启动新的容器实例(docker run ...)

3) 最后,我能否通过调整 gunicorn thread 设置有效地达到 concurrency > 5?例如。在这种情况下 5x3=15.. 例如。 15 个并发请求由 3 个正在运行的容器实例提供服务,例如?如果这是真的,那么调整 thread 与调整云运行 concurrency 的优缺点?

附加信息:- 这是一个 IO 密集型应用程序(不是 CPU 密集型)。简单地获取 HTTP 请求并发布到 pubsub/sub

非常感谢

最佳答案

首先,在 Stackoverflow 上一次问 5 件事的“鸡尾酒问题”是不合适的。以后请限制在 1 个问题。

  1. 您不应该担心容器在何处运行(物理机、VM 等)。 --max-instances 限制您允许应用扩展的“容器实例数”。这是为了防止有人恶意向您的应用发送过多请求而导致产生巨额账单。

  2. 这记录在 https://cloud.google.com/run/docs/about-concurrency .如果您指定 --concurrency=10,您的容器可以被路由为一次最多有 10 个进行中的请求。因此,请确保您的应用一次可以处理 10 个请求。

  3. 是的,请阅读 Gunicorn 文档。测试您的“本地”设置是否让 gunicorn 同时处理 5 个请求... Cloud Run 的 --concurrency 设置是为了确保您不会收到超过 5 个请求到 1 个容器实例片刻。

我还建议您在提问之前更彻底地阅读官方文档,也许还有 cloud-run-faq once which 几乎回答了所有这些问题。

关于python-3.x - Cloud Run Qs::max-instances + 并发 + 线程(gunicorn 线程),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61435056/

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