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

Масштабирование Luna Cars Analytics#

Вертикальное масштабирование для LCA Stream#

В Luna Cars Analytics предусмотрена возможность запуска нескольких экземпляров Stream на одном сервере с использованием Docker. Для масштабирования и запуска нескольких экземпляров необходимо настроить файл .env-vanilla, в котором указываются параметры, такие как количество экземпляров и устройства, на которых они будут запускаться.

Чтобы запустить несколько экземпляров Stream, выполните следующие шаги:

1. Перейдите в корневую директорию дистрибутива

cd cars-installer_v.2.18.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. Сохранить изменения в .env-vanilla

Примечания: - В секции STREAMS_LIST указываются устройства, на которых будет запускаться Stream. Например, cpu для процессора или gpu0 для графического процессора c индексом 0. - Если необходимо запустить больше экземпляров, просто добавьте соответствующее количество устройств в эти секции.

5. Выполните перезагрузку сервера для применения изменений

./stop.sh
./start.sh vanilla

Обратите внимание! Поддержка работы на GPU

Работа на GPU поддерживается только на видеокартах NVIDIA с установленными драйверами и NVIDIA Container Toolkit. Вам нужно установить драйверы NVIDIA и NVIDIA Container Toolkit. Подробную инструкцию по установке можно найти на официальном сайте NVIDIA.

GPU-карты ниже Turing-архитектуры и старше Ada-архитектуры не поддерживаются.

Параметры для настройки Stream#

Можно запустить любое количество экземпляров Stream, если ресурсы системы позволяют поддерживать все эти экземпляры.

Параметр Значение Описание
STREAMS_LIST cpu, gpu{N} Список устройств для запуска экземпляров Stream. Например, cpu для обработки на центральном процессоре, gpu{N}для запуска сервиса на gpu с индексом N (нумерация gpu начинается с 0)
STREAM_PORT_START Номер порта Начальный номер порта для работы экземпляра Stream. Этот порт будет увеличиваться в зависимости от количества экземпляров. Каждый экземпляр должен иметь уникальный порт, который не должен пересекаться с портами других подсистем (например, API). При увеличении количества экземпляров порт увеличивается на 1, начиная с указанного значения
STREAM_HASP_PORT_START Номер порта HASP Начальный номер порта для подключения к серверу HASP. Этот порт должен соответствовать номеру дополнительного экземпляра Stream и не должен пересекаться с портами других подсистем (например, API). Порт увеличивается на 1 для каждого нового экземпляра

Запуск видеопотока на конкретном экземпляре Stream#

Для запуска видеопотока на одном из нескольких экземпляров Stream, необходимо указать адрес конкретного экземпляра при подключении камеры в UI.

Обратите внимание!

Ограничение на ширину кадра видеопотока составляет 4096px. Если ширина превышает допустимое значение, это может привести к некорректной работе GPU.

Вертикальное масштабирование для LCA API#

API — это ресурсоемкая система для обработки запросов на обработку изображений. Для повышения производительности и масштабируемости достаточно увеличить количество экземпляров API.

Вертикальное масштабирование для API достигается запуском нескольких экземпляров API на одном сервере. Для этого необходимо отредактировать параметры в файле .env-vanilla, которые отвечают за количество экземпляров API и устройства, на которых они будут работать.

Чтобы увеличить количество экземпляров API, выполните следующие шаги:

1. Перейдите в корневую директорию дистрибутива:

cd cars-installer_v.2.18.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. Сохраните изменения в .env-vanilla.

Примечание: - APIS_LIST задает, сколько экземпляров API будет запущено и на каких устройствах (например, CPU или GPU{N}). - Убедитесь, что для каждого экземпляра указаны уникальные порты в API_PORT, а также правильно распределены ресурсы, такие как CPU и GPU{N}, чтобы избежать конфликтов.

5. Выполните перезагрузку сервера для применения изменений:

./stop.sh
./start.sh vanilla

Обратите внимание! Поддержка работы на GPU

Работа на GPU поддерживается только на видеокартах NVIDIA с установленными драйверами и NVIDIA Container Toolkit. Вам нужно установить драйверы NVIDIA и NVIDIA Container Toolkit. Подробную инструкцию по установке можно найти на официальном сайте NVIDIA.

GPU-карты ниже Turing-архитектуры и старше Ada-архитектуры не поддерживаются.

Параметры для настройки API#

Параметр Значение Описание
APIS_LIST cpu, gpu{N} Список устройств для запуска экземпляров API. Количество экземпляров зависит от количества указанных устройств в списке. Например, cpu для процессора, gpu{N} для запуска сервиса на gpu с индексом N (нумерация gpu начинается с 0)
API_HASP_PORT_START Номер порта для HASP Начальный номер порта для подключения к серверу HASP. Этот порт должен соответствовать номеру дополнительного экземпляра API и не должен пересекаться с портами других подсистем (например, Stream). Порт увеличивается на 1 для каждого нового экземпляра
API_CPU_COUNT Количество потоков Укажите количество потоков, обрабатываемых одним экземпляром API. Этот параметр определяет, сколько потоков выделяется для каждого экземпляра
API_CPU_NT Количество ядер CPU Укажите количество ядер CPU, используемых для нейронных сетей (например, для обработки AI-запросов)