Поддерживает ли App Engine Flexible for Python одновременные запросы? - PullRequest
0 голосов
/ 30 июня 2018

В документации о том, как GAE Flexible обрабатывает запросы, говорится, что «экземпляр может обрабатывать несколько запросов одновременно», но я не знаю, что именно это означает.

Допустим, мое приложение может обрабатывать один запрос каждые 60 секунд.

После начала обработки первоначального запроса, будет ли другой запрос (или 3), который происходит, скажем, через 30 секунд (так наполовину сделано с первым запросом), обрабатываться тем же экземпляром, или он вызовет автоматическое масштабирование и ускорит работу еще экземпляры для обработки этих новых запросов? В этой ситуации предполагается, что загрузка ЦП для первого запроса все еще ниже порога масштабирования загрузки ЦП.

Меня беспокоит то, что моему экземпляру требуется 60 секунд для обработки одного запроса, и я буду получать несколько запросов одновременно, что я буду неэффективно запускать автоматическое масштабирование, даже если для обработки дополнительных запросов будет достаточно вычислительной мощности в том же случае. Это как это работает? В идеале я хотел бы иметь возможность выполнять многопоточную обработку и принимать дополнительные запросы для одного и того же экземпляра, в то же время не превышая порог использования ЦП.

Документация для одновременных запросов недостаточна для Гибкой среды в отличие от Стандартной среды, поэтому я хочу быть уверен.

1 Ответ

0 голосов
/ 03 июля 2018

Возможно, «количество рабочих» - это тот параметр конфигурации, который вы ищете:

https://cloud.google.com/appengine/docs/flexible/python/runtime#recommended_gunicorn_configuration

Gunicorn использует рабочих для обработки запросов. По умолчанию Gunicorn использует синхронизирующие рабочие. Этот рабочий класс совместим со всеми веб-приложениями, но каждый работник может обрабатывать только один запрос за раз. По умолчанию gunicorn использует только одного из этих работников. Это часто может привести к недостаточному использованию ваших экземпляров и увеличению задержки в приложениях при высокой нагрузке.

Похоже, вы уже видели, что вы можете указать порог использования процессора:

https://cloud.google.com/appengine/docs/flexible/python/reference/app-yaml#automatic_scaling

Вы также можете использовать что-то кроме gunicorn, если хотите. Вот один из их примеров, где они используют Honcho вместо:

https://github.com/GoogleCloudPlatform/getting-started-python/blob/master/6-pubsub/app.yaml

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...