Skip to content

Стратегии масштабирования (Вертикальная и горизонтальная архитектура) ​

При росте числа камер от десятков до тысяч RUSEON Core поддерживает как вертикальное масштабирование (Scale-Up) на многоядерных серверах, так и горизонтальное шардирование (Scale-Out) по распределенным Edge-узлам.


1. Вертикальное масштабирование (Scale-Up) ​

Один современный 12–16 ядерный сервер обслуживает 600+ камер 1080p (18 000+ FPS):

  1. Привязка NUMA с numactl: На двухсокетных серверах привязывайте процесс к одной NUMA-ноде для исключения задержек шины памяти:
    bash
    numactl --cpunodebind=0 --membind=0 /opt/ruseon/bin/ruseon -config /etc/ruseon/config.yaml
  2. Разделение дисков по уровням:
    • База данных (./data): выделенный NVMe SSD.
    • Видеоархив (./recordings): емкий массив HDD/SATA (RAID 6 / ZFS RAID-Z2).
  3. Тюнинг сетевых буферов: Установите net.core.rmem_max=33554432 в /etc/sysctl.conf.

2. Горизонтальное масштабирование (Scale-Out) и шардирование камер ​

Для масштабных распределенных объектов свыше 600 камер:

  • Шардирование камер: Камеры распределяются по узлам по объектам (например, Узел 1 = Корпус А, Узел 2 = Корпус Б).
  • Единая точка входа: Балансировщик Nginx/HAProxy маршрутизирует запросы по префиксу камеры:
    nginx
    location ~ ^/(stream|api)/(hls|webrtc|cameras)/(cam_bldgA_.*) {
        proxy_pass http://edge-node-1.internal:8080;
    }
    location ~ ^/(stream|api)/(hls|webrtc|cameras)/(cam_bldgB_.*) {
        proxy_pass http://edge-node-2.internal:8080;
    }

Связанная документация ​

Released under the MIT License.