Требования
Системные требования и планирование ресурсов для Voxagent
Voxagent — модульная платформа. Каждый сервис работает в своём контейнере, поэтому компоненты можно масштабировать независимо. Перед развёртыванием подберите железо под ожидаемое число одновременных сессий — остальное (бэкбон) остаётся примерно постоянным.
Программные зависимости
- Docker 24+ и Docker Compose v2.24+
- 64-битный Linux-хост (Ubuntu 22.04 LTS или аналог). macOS подойдёт для локальной разработки.
- Исходящий интернет (registry, LLM/STT/TTS провайдеры, STUN/TURN).
- Порты, доступные из браузеров пользователей: фронтенд, API бэкенда, Keycloak, LiveKit WebRTC (TCP 7881, UDP 50000–60000).
Ресурсы по сервисам
В таблице ниже — CPU / RAM / Disk для каждого сервиса при типовых нагрузках по одновременным сессиям. Значения — эмпирические замеры из прода.
⚠ Все цифры на этой странице — предварительные оценки. Реальная нагрузка может существенно отличаться в зависимости от паттерна трафика, выбора моделей, длительности сессий и характеристик аудио — используйте их как стартовую точку и обязательно проверяйте на своих метриках перед сайзингом продакшен-железа.
| Сервис | 1 сессия | 10 сессий | 50 сессий | 250 сессий | 500 сессий |
|---|---|---|---|---|---|
livekit-serverWebRTC SFU — media plane for every active call | 300 m · 532 MB · 1.0 GB | 750 m · 712 MB · 1.0 GB | 2.75 vCPU · 1.5 GB · 1.0 GB | 12.75 vCPU · 5.4 GB · 1.0 GB | 25.25 vCPU · 10.3 GB · 1.0 GB |
python-workerLiveKit voice agent (LLM/STT/TTS orchestration + ffmpeg) | 650 m · 1.2 GB · 1.0 GB | 2.00 vCPU · 3.1 GB · 1.0 GB | 8.00 vCPU · 11.7 GB · 1.0 GB | 38.00 vCPU · 54.7 GB · 1.0 GB | 75.50 vCPU · 108.4 GB · 1.0 GB |
egressLiveKit recording / transcoding (optional) | 1.20 vCPU · 2.1 GB · 2.1 GB | 3.00 vCPU · 3.0 GB · 2.6 GB | 11.00 vCPU · 6.9 GB · 5.0 GB | 51.00 vCPU · 26.4 GB · 17.0 GB | 101.00 vCPU · 50.8 GB · 32.0 GB |
turn-detectorRemote semantic EOU classifier (ONNX, smart_turn_v3) | 1.05 vCPU · 783 MB · 0.5 GB | 1.50 vCPU · 918 MB · 0.5 GB | 3.50 vCPU · 1.5 GB · 0.5 GB | 13.50 vCPU · 4.4 GB · 0.5 GB | 26.00 vCPU · 8.1 GB · 0.5 GB |
df-denoiseDeepFilterNet noise suppression (optional) | 350 m · 350 MB · 0.5 GB | 1.25 vCPU · 800 MB · 0.5 GB | 5.25 vCPU · 2.7 GB · 0.5 GB | 25.25 vCPU · 12.5 GB · 0.5 GB | 50.25 vCPU · 24.7 GB · 0.5 GB |
media-bridgeWebSocket ↔ LiveKit audio bridge (Voximplant / Twilio inbound) | 130 m · 271 MB · 0.5 GB | 400 m · 406 MB · 0.5 GB | 1.60 vCPU · 1006 MB · 0.5 GB | 7.60 vCPU · 3.9 GB · 0.5 GB | 15.10 vCPU · 7.6 GB · 0.5 GB |
sip + sip-publicLiveKit SIP gateway (inbound + outbound trunks) | 220 m · 522 MB · 0.5 GB | 400 m · 612 MB · 0.5 GB | 1.20 vCPU · 1012 MB · 0.5 GB | 5.20 vCPU · 2.9 GB · 0.5 GB | 10.20 vCPU · 5.4 GB · 0.5 GB |
asp-net-backendMain API (.NET 9, EF Core, SignalR) | 510 m · 1.0 GB · 5.0 GB | 600 m · 1.0 GB · 5.0 GB | 1.00 vCPU · 1.2 GB · 5.0 GB | 3.00 vCPU · 2.2 GB · 5.0 GB | 5.50 vCPU · 3.4 GB · 5.0 GB |
keycloakOAuth2 / OIDC authentication | 500 m · 768 MB · 2.0 GB | 500 m · 768 MB · 2.0 GB | 500 m · 768 MB · 2.0 GB | 500 m · 768 MB · 2.0 GB | 500 m · 768 MB · 2.0 GB |
postgresMain + Lago + Keycloak + Hangfire DBs | 505 m · 1.5 GB · 20.0 GB | 550 m · 1.5 GB · 20.0 GB | 750 m · 1.6 GB · 20.1 GB | 1.75 vCPU · 2.0 GB · 20.8 GB | 3.00 vCPU · 2.5 GB · 21.5 GB |
redisLiveKit pubsub, backend cache, queues | 105 m · 259 MB · 8.0 GB | 150 m · 286 MB · 8.0 GB | 350 m · 406 MB · 8.0 GB | 1.35 vCPU · 1006 MB · 8.0 GB | 2.60 vCPU · 1.7 GB · 8.0 GB |
kafkaEvent streaming (spans, webhooks, analytics) | 505 m · 1.0 GB · 20.0 GB | 550 m · 1.0 GB · 20.1 GB | 750 m · 1.2 GB · 20.5 GB | 1.75 vCPU · 2.2 GB · 22.5 GB | 3.00 vCPU · 3.4 GB · 25.0 GB |
webhook-receiverAccepts inbound webhooks (Lago, LiveKit, Twilio) | 200 m · 256 MB · 1.0 GB | 200 m · 256 MB · 1.0 GB | 200 m · 256 MB · 1.0 GB | 200 m · 256 MB · 1.0 GB | 200 m · 256 MB · 1.0 GB |
angular-client + widgetStatic frontends (nginx) | 100 m · 256 MB · 0.5 GB | 100 m · 256 MB · 0.5 GB | 100 m · 256 MB · 0.5 GB | 100 m · 256 MB · 0.5 GB | 100 m · 256 MB · 0.5 GB |
lago (api + worker + clock + front + pdf)Usage-based billing stack (5 deployments) | 1.00 vCPU · 1.6 GB · 5.0 GB | 1.00 vCPU · 1.6 GB · 5.0 GB | 1.00 vCPU · 1.6 GB · 5.0 GB | 1.00 vCPU · 1.6 GB · 5.0 GB | 1.00 vCPU · 1.6 GB · 5.0 GB |
object storage (S3 / MinIO)Recordings, transcripts, debug artefacts | 200 m · 256 MB · 20.1 GB | 200 m · 256 MB · 20.6 GB | 200 m · 256 MB · 23.0 GB | 200 m · 256 MB · 35.0 GB | 200 m · 256 MB · 50.0 GB |
logging (ES + Kibana + Benthos + otel)Optional observability stack | 1.00 vCPU · 2.0 GB · 50.0 GB | 1.03 vCPU · 2.0 GB · 50.0 GB | 1.15 vCPU · 2.1 GB · 50.1 GB | 1.75 vCPU · 2.5 GB · 50.8 GB | 2.50 vCPU · 3.0 GB · 51.5 GB |
| Итого | 8.53 vCPU 14.6 GB 137.6 GB | 14.18 vCPU 18.5 GB 138.9 GB | 39.30 vCPU 36.0 GB 144.3 GB | 164.90 vCPU 123.3 GB 171.5 GB | 321.90 vCPU 232.4 GB 205.5 GB |
Как читать:
- Сервисы, зависящие от сессий (
livekit-server,python-worker,egress,websocket-media-bridge) растут линейно по числу активных звонков. Их и нужно планировать. - Backbone-сервисы (Postgres, Kafka, Keycloak, Redis, MinIO и т.п.) имеют в основном фиксированный футпринт — разворачиваются один раз и переиспользуются между тенантами.
- Диск в основном растёт в Postgres (транскрипты, счета), Kafka (retention событий) и MinIO (записи звонков). Планируйте хранилище с учётом retention.
Калькулятор ресурсов
Оцените общий футпринт application-слоя под пиковую нагрузку:
Сумма по всем сервисам приложения при 50 одновременных сессиях. Ресурсы под LLM / STT / TTS оплачиваются отдельно и здесь не учтены.
Замечания
- Числа только для application-слоя. CPU/RAM/диск под LLM, STT и TTS провайдеров (или self-hosted модели) оплачиваются отдельно у вендоров и здесь не учтены — для self-hosted GPU-планирования см. калькулятор ниже.
- Добавьте запас 20–30% сверху на headroom, пики и оверхед ОС.
- Для HA-прода удвойте backbone (реплика Postgres, Kafka с replication factor ≥ 2 и т.п.).
GPU-сайзинг под self-hosted модели
Если STT / TTS / LLM крутятся у вас на собственном железе, а не у облачного провайдера — GPU VRAM считается отдельно. Матрица ниже — актуальные OSS-модели на июнь 2026; калькулятор под ней позволяет выбрать по одной модели на роль и увидеть суммарный VRAM под целевую конкурентную нагрузку. В любом dropdown выберите «Custom» — поля станут редактируемыми и пересчёт идёт на лету.
| Модель | Тип | Параметры | Веса @FP16 | KV @8K | Лицензия |
|---|---|---|---|---|---|
gpt-oss-120B (MoE) | MoE (5.1B активных) | 117B | 234 GB | 0.60 GB | Apache 2.0 |
Qwen3-30B-A3B (MoE) | MoE (3.3B активных) | 30.5B | 61.0 GB | 0.81 GB | Apache 2.0 |
GLM-4.7 (Z.ai, MoE) | MoE (32B активных) | 355B | 710 GB | 3.22 GB | MIT |
Llama-3.3-Nemotron-Super-49B-v1.5 | Dense | 49B | 98.0 GB | 2.68 GB | NVIDIA Open Model |
Llama 3.3 70B | Dense | 70.6B | 141 GB | 2.68 GB | Llama Community |
Llama 4 Scout (MoE) | MoE (17B активных) | 109B | 218 GB | 1.61 GB | Llama 4 Community |
Mistral Small 3.1 24B | Dense | 24B | 48.0 GB | 1.34 GB | Apache 2.0 |
Gemma 3 27B | Dense | 27B | 54.0 GB | 4.16 GB | Gemma Terms |
DeepSeek-R1-Distill-Qwen-32B | Dense | 32.8B | 65.6 GB | 2.15 GB | MIT (distill) |
DeepSeek-V4-Flash (MoE) | MoE (13B активных) | 284B | 568 GB | 1.07 GB | MIT |
| Модель | Параметры | Веса | На сессию | Streaming | RU | Лицензия |
|---|---|---|---|---|---|---|
NVIDIA Nemotron-3.5-ASR Streaming 0.6B (multilingual) | 600M | 1.20 GB | 200 MB | ✓ | ✓ | NVIDIA Open Model |
NVIDIA Parakeet-TDT 0.6B-v3 (multilingual) | 600M | 1.20 GB | 250 MB | ✓ | ✓ | CC-BY-4.0 |
NVIDIA Canary-1B-v2 | 1000M | 2.00 GB | 450 MB | — | ✓ | CC-BY-4.0 |
NVIDIA Parakeet-TDT 1.1B (EN-only) | 1100M | 2.20 GB | 320 MB | ✓ | — | CC-BY-4.0 |
Whisper Large-v3-Turbo | 809M | 1.62 GB | 280 MB | — | ✓ | MIT |
Faster-Whisper Large-v3-Turbo (INT8) | 809M | 0.81 GB | 220 MB | — | ✓ | MIT |
Whisper Large-v3 | 1550M | 3.10 GB | 380 MB | — | ✓ | MIT |
Distil-Whisper Large-v3.5 | 750M | 1.50 GB | 250 MB | — | — | MIT |
| Модель | Параметры | Веса | На сессию | Clone | RU | Лицензия |
|---|---|---|---|---|---|---|
OpenVoice v2 | 70M | 0.14 GB | 500 MB | ✓ | ✓ | MIT |
StyleTTS 2 | 130M | 0.26 GB | 250 MB | ✓ | — | MIT |
ChatTTS | 140M | 0.28 GB | 250 MB | — | — | AGPL-3.0 |
Kokoro TTS (Hexgrad) | 82M | 0.16 GB | 200 MB | — | — | Apache 2.0 |
Piper TTS (Rhasspy) | 50M | 0.10 GB | 80 MB | — | ✓ | MIT |
| GPU | VRAM | Класс |
|---|---|---|
NVIDIA L4 | 24 GB | датацентр |
NVIDIA A10G | 24 GB | датацентр |
RTX 4090 | 24 GB | потребительская |
RTX 5090 | 32 GB | потребительская |
NVIDIA L40S | 48 GB | датацентр |
NVIDIA A100 40GB | 40 GB | датацентр |
NVIDIA A100 80GB | 80 GB | датацентр |
NVIDIA H100 80GB | 80 GB | датацентр |
NVIDIA H200 | 141 GB | датацентр |
NVIDIA B200 | 192 GB | датацентр |
Веса считаются в fp16 / bf16 для LLM и в выбранной точности для STT / TTS. KV cache держится в FP16 (дефолт vLLM / TGI) вне зависимости от точности весов. Запас 10% на выбранной GPU покрывает framework activation buffers и CUDA graph scratch — на проде ещё оставляйте запас под пики контекста.
Как считает GPU-калькулятор
- Веса модели — лежат в VRAM один раз вне зависимости от числа сессий. Квантизация в INT8 уменьшает их вдвое, INT4 (AWQ / GPTQ) — в четыре раза.
- KV cache — LLM хранит per-token attention state для каждой активной
сессии. Bytes/token =
4 × layers × kv_heads × head_dim(KV cache остаётся в FP16 даже когда веса квантизованы — это дефолт vLLM / TGI / SGLang). - Session buffers — STT и TTS держат per-stream activation-буферы. Размер зависит от архитектуры: autoregressive TTS (XTTS, Fish) тратит больше всего на сессию, encoder-only Whisper — меньше всего.
- Hybrid attention (DeepSeek-V4 CSA+HCA) — реальный KV cache при длинных
контекстах ≈ 10% от naive-формулы. В пресете V4 это учтено через
effective
kv_heads. - Рекомендация GPU — наименьшая карта из каталога, куда влезает с 10% запасом. Если ничего не подходит — снижаем precision, режем контекст или делим модель по нескольким GPU через tensor-parallel.
Минимальный сайзинг машины
Числа из калькулятора выше с включёнными backbone-сервисами и рекомендованным запасом 20–30%. CPU / RAM — только application-слой; GPU под self-hosted модели бюджетируется отдельно (секция выше).
| Нагрузка | Рекомендуемая VM(s) |
|---|---|
| Демо / dev (1 сессия) | 4 vCPU · 8 GB RAM · 50 GB SSD |
| Small (10 сессий) | 12 vCPU · 24 GB RAM · 150 GB SSD |
| Medium (50 сессий) | 32 vCPU · 48 GB RAM · 250 GB SSD |
| Large (250 сессий) | 160 vCPU · 160 GB RAM · 500 GB SSD (multi-node) |
| XL (500 сессий) | 320 vCPU · 300 GB RAM · 1 TB SSD (multi-node) |
Выше 50 одновременных сессий рекомендуем вынести livekit-server + python-worker
на отдельные хосты, чтобы медиа и агентская нагрузка не мешали backbone. Выше
250 сессий — выделите ноды также под egress (запись) и turn-detector.