(я изучаю Cloud Run и признаю, что это не связано с разработкой или кодом, но надеюсь, что какой-то инженер GCP сможет это уточнить)
У меня запущено приложение PY - gunicorn + Flask ... просто Po C на данный момент, поэтому минимальные конфигурации.
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), наконец, могу ли я эффективно достичь concurrency
> 5, изменив настройки gunicorn thread
? например 5x3 = 15 в этом случае .. например 15 одновременных запросов, обслуживаемых 3 работающими экземплярами контейнера, например если это правда, какие плюсы / минусы настройки thread
против настройки запуска облака concurrency
?
дополнительная информация: - Это приложение с интенсивным вводом-выводом (не загружает процессор). Просто захват HTTP-запроса и публикация в pubsub / sub
большое спасибо