Масштабирование LUNA CARS#
Вертикальное масштабирование для CARS_Stream#
В LUNA CARS предусмотрена возможность запуска нескольких экземпляров CARS_Stream на одном сервере с использованием Docker. Для масштабирования и запуска нескольких экземпляров необходимо настроить файл .env-vanilla, в котором указываются параметры, такие как количество экземпляров и устройства, на которых они будут запускаться.
Чтобы запустить несколько экземпляров CARS_Stream, выполните следующие шаги:
1․ Перейдите в корневую директорию дистрибутива:
cd cars-installer_v.2.15.0
2․ Откройте файл .env-vanilla в текстовом редакторе:
nano .env-vanilla
3․ В секции STREAMS_LIST укажите количество экземпляров и устройства для их запуска. Например:
STREAMS_LIST=(cpu gpu0 gpu1)
# Запуск 3 экземпляров: 1 на cpu, 1 на gpu с индексом 0, 1 на gpu с индексом 1.
4․ cохранить изменения в .env-vanilla
Примечания: - В секции
STREAMS_LISTуказываются устройства, на которых будет запускаться CARS_Stream. Например, cpu для процессора или gpu0 для графического процессора c индексом 0. - Если необходимо запустить больше экземпляров, просто добавьте соответствующее количество устройств в эти секции.
5․ Выполните перезагрузку сервера для применения изменений:
./docker_stop_all.sh
./docker_start_all.sh vanilla
Обратите внимание! Поддержка работы на GPU
Работа на GPU поддерживается только на видеокартах NVIDIA с установленными драйверами и NVIDIA Container Toolkit. Вам нужно установить драйверы NVIDIA и NVIDIA Container Toolkit. Подробную инструкцию по установке можно найти на официальном сайте NVIDIA.
GPU-карты ниже Turing-архитектуры и старше Ada-архитектуры не поддерживаются.
Параметры для настройки CARS_Stream#
Можно запустить любое количество экземпляров CARS_Stream, если ресурсы системы позволяют поддерживать все эти экземпляры.
| Параметр | Значение | Описание |
|---|---|---|
| STREAMS_LIST | cpu, gpu{N} | Список устройств для запуска экземпляров CARS_Stream. Например, cpu для обработки на центральном процессоре, gpu{N}для запуска сервиса на gpu с индексом N (нумерация gpu начинается с 0) |
| STREAM_PORT_START | Номер порта | Начальный номер порта для работы экземпляра CARS_Stream. Этот порт будет увеличиваться в зависимости от количества экземпляров. Каждый экземпляр должен иметь уникальный порт, который не должен пересекаться с портами других подсистем (например, CARS_API). При увеличении количества экземпляров порт увеличивается на 1, начиная с указанного значения |
| STREAM_HASP_PORT_START | Номер порта HASP | Начальный номер порта для подключения к серверу HASP. Этот порт должен соответствовать номеру дополнительного экземпляра CARS_Stream и не должен пересекаться с портами других подсистем (например, CARS_API). Порт увеличивается на 1 для каждого нового экземпляра |
Запуск видеопотока на конкретном экземпляре CARS_Stream#
Для запуска видеопотока на одном из нескольких экземпляров CARS_Stream, необходимо указать адрес конкретного экземпляра при подключении камеры в веб-интерфейсе CARS_Analytics UI.
Обратите внимание!
Ограничение на ширину кадра видеопотока составляет 4096px. Если ширина превышает допустимое значение, это может привести к некорректной работе GPU.
Подробнее см. CARS_Analytics. Руководство пользователя.
Вертикальное масштабирование для CARS_API#
CARS_API — это ресурсоемкая система для обработки запросов на обработку изображений. Для повышения производительности и масштабируемости достаточно увеличить количество экземпляров API.
Вертикальное масштабирование для CARS_API достигается запуском нескольких экземпляров API на одном сервере. Для этого необходимо отредактировать параметры в файле .env-vanilla, которые отвечают за количество экземпляров CARS_API и устройства, на которых они будут работать.
Чтобы увеличить количество экземпляров CARS_API, выполните следующие шаги:
1․ Перейдите в корневую директорию дистрибутива:
cd cars-installer_v.2.15.0
2․ Откройте файл .env-vanilla в текстовом редакторе:
nano .env-vanilla
3․ Внесите изменения в секцию APIS_LIST, указав количество экземпляров и устройства для их запуска. Пример:
APIS_LIST=(cpu cpu gpu0 gpu0 gpu1)
# Запуск 2 API на CPU, 2 API на gpu с индексом 0 и 1 API на gpu с индексом 1
4․ Cохраните изменения в .env-vanilla.
Примечание: -
APIS_LISTзадает, сколько экземпляров CARS_API будет запущено и на каких устройствах (например, CPU или GPU{N}). - Убедитесь, что для каждого экземпляра указаны уникальные порты вAPI_PORT, а также правильно распределены ресурсы, такие как CPU и GPU{N}, чтобы избежать конфликтов.
5․ Выполните перезагрузку сервера для применения изменений:
./docker_stop_all.sh
./docker_start_all.sh vanilla
Обратите внимание! Поддержка работы на GPU
Работа на GPU поддерживается только на видеокартах NVIDIA с установленными драйверами и NVIDIA Container Toolkit. Вам нужно установить драйверы NVIDIA и NVIDIA Container Toolkit. Подробную инструкцию по установке можно найти на официальном сайте NVIDIA.
GPU-карты ниже Turing-архитектуры и старше Ada-архитектуры не поддерживаются.
Параметры для настройки CARS_API#
| Параметр | Значение | Описание |
|---|---|---|
| APIS_LIST | cpu, gpu{N} | Список устройств для запуска экземпляров CARS_API. Количество экземпляров зависит от количества указанных устройств в списке. Например, cpu для процессора, gpu{N} для запуска сервиса на gpu с индексом N (нумерация gpu начинается с 0) |
| API_HASP_PORT_START | Номер порта для HASP | Начальный номер порта для подключения к серверу HASP. Этот порт должен соответствовать номеру дополнительного экземпляра CARS_API и не должен пересекаться с портами других подсистем (например, CARS_Stream). Порт увеличивается на 1 для каждого нового экземпляра |
| API_CPU_COUNT | Количество потоков | Укажите количество потоков, обрабатываемых одним экземпляром CARS_API. Этот параметр определяет, сколько потоков выделяется для каждого экземпляра |
| API_CPU_NT | Количество ядер CPU | Укажите количество ядер CPU, используемых для нейронных сетей (например, для обработки AI-запросов) |