Системные и аппаратные требования
Благодаря архитектуре Zero-Transcoding Transmuxing, кольцевым буферам в оперативной памяти и оптимизациям ввода-вывода ядра Linux, системные требования RUSEON Core значительно ниже традиционных систем видеонаблюдения.
1. Таблица аппаратных требований
Рекомендации по оборудованию составлены на основе результатов нагрузочного тестирования:
| Масштаб инсталляции | Число камер | Процессор (CPU) | Оперативная память (RAM) | Дисковая подсистема | Сетевой интерфейс |
|---|---|---|---|---|---|
| Edge / Малый | 1 – 50 потоков | 1 vCPU | 256 МБ – 512 МБ | SATA SSD / High-Endurance eMMC | 100 Мбит/с / 1 Гбит/с |
| Средний объект | 50 – 200 потоков | 1 – 2 vCPU | 512 МБ – 1 ГБ | SSD для BadgerDB + HDD-массив для архива | 1 Гбит/с Ethernet |
| High-Density / Enterprise | 200 – 600+ потоков | 4 – 8 vCPU | 2 ГБ – 4 ГБ | NVMe для BadgerDB + RAID / ZFS для fMP4 | 10 Гбит/с Ethernet |
TIP
Данные эталонного бенчмарка: В тесте bench-baseline.md под нагрузкой из 600 одновременных камер 30 FPS (1.34 Гбит/с входящего трафика), 1 800 активных HLS-зрителей и 240 WebRTC-клиентов реальное потребление памяти процессом составило всего 471 МБ RSS RAM, а загрузка CPU — 360.8% (~3.6 ядер из 12).
2. Поддерживаемые операционные системы и платформы
RUSEON Core компилируется в единый статический бинарный файл без внешних Cgo-зависимостей:
| Операционная система | Архитектуры | Уровень поддержки и оптимизаций |
|---|---|---|
| Linux (Ubuntu 22.04/24.04, Debian 12, Alpine, RHEL 9) | amd64, arm64, armv7 | Tier 1: Прямой I/O (sync_file_range + POSIX_FADV_DONTNEED) и сетевой UDP-батчинг sendmmsg |
| Windows (Windows 10/11, Windows Server 2019/2022) | amd64 | Стандартный буферизованный I/O с периодическим сбросом на диск |
| macOS (macOS 12+ Monterey, Ventura, Sonoma, Sequoia) | arm64 (Apple Silicon), amd64 | Стандартный I/O (для разработки и тестирования) |
| Docker / Kubernetes | linux/amd64, linux/arm64 | Официальные минималистичные образы (ghcr.io/rusegal/ruseon-core) |
3. Расчёт сетевой полосы и дискового потока
- Входящая полоса (Ingress, Мбит/с): Сумма битрейтов всех камер ($\sum \text{Bitrate}_{\text{cam}}$).
- Пример (50 камер по 2.5 Мбит/с): $50 \times 2.5\text{ Мбит/с} = \mathbf{125\text{ Мбит/с}}$.
- Исходящая полоса (Egress, Мбит/с): Сумма битрейтов всех активных зрителей ($\sum \text{Bitrate}_{\text{viewer}}$).
- Скорость записи на диск (МБ/с): $\text{Входящая полоса (Мбит/с)} / 8$.
- Пример (50 камер по 2.5 Мбит/с): $125\text{ Мбит/с} / 8 \approx \mathbf{15.6\text{ МБ/с}}$ последовательной записи.
4. Рекомендации по дисковой подсистеме
- Каталог базы данных (
./data): Размещается на быстром SSD/NVMe для транзакций BadgerDB. - Каталог видеоархива (
./recordings): Файловые системы ext4 или XFS с опциями монтированияnoatime,nodiratime.