Стратегии масштабирования (Вертикальная и горизонтальная архитектура)
При росте числа камер от десятков до тысяч RUSEON Core поддерживает как вертикальное масштабирование (Scale-Up) на многоядерных серверах, так и горизонтальное шардирование (Scale-Out) по распределенным Edge-узлам.
1. Вертикальное масштабирование (Scale-Up)
Один современный 12–16 ядерный сервер обслуживает 600+ камер 1080p (18 000+ FPS):
- Привязка NUMA с
numactl: На двухсокетных серверах привязывайте процесс к одной NUMA-ноде для исключения задержек шины памяти:bashnumactl --cpunodebind=0 --membind=0 /opt/ruseon/bin/ruseon -config /etc/ruseon/config.yaml - Разделение дисков по уровням:
- База данных (
./data): выделенный NVMe SSD. - Видеоархив (
./recordings): емкий массив HDD/SATA (RAID 6 / ZFS RAID-Z2).
- База данных (
- Тюнинг сетевых буферов: Установите
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; }