【发布时间】:2020-08-09 14:26:33
【问题描述】:
(我正在学习 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 :: 一个正在运行的容器实例是否接收到多个并发请求(例如,由 3 个正在运行的容器实例处理的 5 个并发请求)?还是每个并发请求都会触发启动新容器实例(docker run ...)
3) 最后,我可以通过调整 gunicorn thread 设置有效地达到concurrency > 5 吗?例如。在这种情况下 5x3=15.. 例如。 15 个并发请求由 3 个正在运行的容器实例提供服务,例如?如果这是真的,调整thread 与调整云运行concurrency 的任何优点/缺点?
附加信息: - 这是一个 IO 密集型应用程序(不是 CPU 密集型)。只需抓取 HTTP 请求并发布到 pubsub/sub
非常感谢
【问题讨论】:
标签: python-3.x google-cloud-platform gunicorn google-cloud-run