Приложение Django с Gunicorn в Google Cloud Run, как связаны различные параметры Gunicorn и GCR?
Для развертывания веб-приложения Django в GCR я хотел бы понять взаимосвязь между различными параметрами Gunicorn и GCR, связанными с автомасштабированием.
Гуникорн имеет такие флаги, как:
- работники
- threads
- timeout
Google Cloud Run имеет следующие параметры конфигурации:
- CPU limit
- Min instances
- Max instances
- Concurrency
Мое понимание на данный момент:
- Число рабочих, установленное в Gunicorn, должно соответствовать лимиту CPU GCR.
- Мы установили
timeout
в Gunicorn значение 0, чтобы позволить GCP автоматически масштабировать экземпляр GCR. - GCP всегда будет поддерживать некоторые экземпляры живыми, это число равно
Min instances
. - При увеличении трафика GCP будет автомасштабироваться до определенного числа, это число равно
Max instances
. .
Я хочу узнать роль потоков (Gunicorn) и параллелизма (GCR) в автомасштабировании. Более конкретно:
- Как влияет количество потоков в Gunicorn на автомасштабирование? Это вообще не должно влиять на автомасштабирование. Они полезны для фоновых задач, таких как операции с файлами, выполнение асинхронных вызовов и т.д. .
- Как параметр Concurrency в GCR влияет на автомасштабирование? Если число рабочих установлено на 1, то конкретный экземпляр должен быть способен обрабатывать только один запрос за раз. Мы должны установить лимит CPU, параллельность, рабочих, чтобы эти три параметра соответствовали друг другу. Пожалуйста, дайте мне знать, правильно ли это.