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