Перейти к содержанию

Масштабирование 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-запросов)