Макс. одновременных запросов: 1 | Макс. количество инстансов: 100 | Инстансы не увеличиваются с количеством запросов

Вопрос или проблема

Я наконец-то заставил работать свой FFmpeg в Google Run, но почему-то количество экземпляров не увеличивается с количеством отправленных запросов к API. Я отправляю десять запросов в секунду, предполагая, что появится десять контейнеров. Кто-нибудь сталкивался с этим раньше?

https://preview.redd.it/gcp-run-max-concurrent-1-max-of-instances-100-instances-v0-wvej3crju9ld1.png?width=1058&format=png&auto=webp&s=72c4b11ab3b5c14ba4a4cba0d75e0421cbf2a39f

По умолчанию экземпляр Cloud Run настроен на обработку до 80 одновременных запросов. Если приходит больше запросов, будет запущен другой экземпляр. Также Google будет пытаться поддерживать загрузку процессора ниже 60% (в среднем за 1 минуту) на каждый экземпляр. Поэтому вам либо нужно увеличить нагрузку на него, либо уменьшить параметр concurrency.

Ответ или решение

Похоже, у вас возникла проблема с масштабированием экземпляров в Google Cloud Run, где у вас настроено максимальное количество параллельных запросов (Max Concurrent) в 1, а максимальное количество экземпляров (Max # of Instances) в 100. Давайте разберемся, почему количество экземпляров не увеличивается при поступлении нескольких запросов.

По умолчанию, Google Cloud Run позволяет каждому экземпляру обрабатывать до 80 параллельных запросов. Если количество запросов превышает заданное значение, автоматически запускается новый экземпляр для их обработки. Однако, в вашем случае установлен лимит на максимальное количество параллельных запросов (Max Concurrent) равный 1. Это означает, что каждый экземпляр может обрабатывать только один запрос одновременно.

Когда вы отправляете десять запросов в секунду, Cloud Run ожидает, что сможет обслужить их по одному на экземпляр. Если у вас всего один экземпляр и он обрабатывает один запрос, остальные запросы будут оставаться в очереди, ожидая своей очереди на обработку, пока не освободится экземпляр.

Вот несколько советов по решению вашей проблемы:

  1. Увеличьте значение Max Concurrent: Если ваша обработка запросов не требует обрабатывать каждый запрос в отдельном экземпляре, вы можете рассмотреть возможность увеличения значения Max Concurrent, чтобы экземпляр мог обрабатывать несколько запросов одновременно. Это позволит вам более эффективно использовать ресурсы.

  2. Проверка конфигурации с точки зрения производительности: Оптимизируйте код вашей функции FFmpeg, чтобы снизить время обработки одного запроса. Если вы можете уменьшить время обработки для каждого экземпляра, это поможет вам справляться с большим количеством запросов без необходимости запускать больше экземпляров.

  3. Настройка Autoscaling: Убедитесь, что параметры авто масштабирования (autoscaling) настроены правильно. Cloud Run позволяет вам выбирать минимальное и максимальное количество экземпляров, что может помочь в обработке пиковых нагрузок.

  4. Мониторинг и логи: Используйте логи и мониторинг Google Cloud для наблюдения за производительностью ваших экземпляров. Это может помочь вам идентифицировать узкие места в вашем приложении и оптимизировать его.

Надеюсь, эти рекомендации помогут вам решить проблему с масштабированием в Google Cloud Run. Если у вас остались вопросы, пожалуйста, дайте знать!

Оцените материал
Добавить комментарий

Капча загружается...