Требования

Системные требования и планирование ресурсов для 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-server
WebRTC SFU — media plane for every active call
300 m · 532 MB · 1.0 GB750 m · 712 MB · 1.0 GB2.75 vCPU · 1.5 GB · 1.0 GB12.75 vCPU · 5.4 GB · 1.0 GB25.25 vCPU · 10.3 GB · 1.0 GB
python-worker
LiveKit voice agent (LLM/STT/TTS orchestration + ffmpeg)
650 m · 1.2 GB · 1.0 GB2.00 vCPU · 3.1 GB · 1.0 GB8.00 vCPU · 11.7 GB · 1.0 GB38.00 vCPU · 54.7 GB · 1.0 GB75.50 vCPU · 108.4 GB · 1.0 GB
egress
LiveKit recording / transcoding (optional)
1.20 vCPU · 2.1 GB · 2.1 GB3.00 vCPU · 3.0 GB · 2.6 GB11.00 vCPU · 6.9 GB · 5.0 GB51.00 vCPU · 26.4 GB · 17.0 GB101.00 vCPU · 50.8 GB · 32.0 GB
turn-detector
Remote semantic EOU classifier (ONNX, smart_turn_v3)
1.05 vCPU · 783 MB · 0.5 GB1.50 vCPU · 918 MB · 0.5 GB3.50 vCPU · 1.5 GB · 0.5 GB13.50 vCPU · 4.4 GB · 0.5 GB26.00 vCPU · 8.1 GB · 0.5 GB
df-denoise
DeepFilterNet noise suppression (optional)
350 m · 350 MB · 0.5 GB1.25 vCPU · 800 MB · 0.5 GB5.25 vCPU · 2.7 GB · 0.5 GB25.25 vCPU · 12.5 GB · 0.5 GB50.25 vCPU · 24.7 GB · 0.5 GB
media-bridge
WebSocket ↔ LiveKit audio bridge (Voximplant / Twilio inbound)
130 m · 271 MB · 0.5 GB400 m · 406 MB · 0.5 GB1.60 vCPU · 1006 MB · 0.5 GB7.60 vCPU · 3.9 GB · 0.5 GB15.10 vCPU · 7.6 GB · 0.5 GB
sip + sip-public
LiveKit SIP gateway (inbound + outbound trunks)
220 m · 522 MB · 0.5 GB400 m · 612 MB · 0.5 GB1.20 vCPU · 1012 MB · 0.5 GB5.20 vCPU · 2.9 GB · 0.5 GB10.20 vCPU · 5.4 GB · 0.5 GB
asp-net-backend
Main API (.NET 9, EF Core, SignalR)
510 m · 1.0 GB · 5.0 GB600 m · 1.0 GB · 5.0 GB1.00 vCPU · 1.2 GB · 5.0 GB3.00 vCPU · 2.2 GB · 5.0 GB5.50 vCPU · 3.4 GB · 5.0 GB
keycloak
OAuth2 / OIDC authentication
500 m · 768 MB · 2.0 GB500 m · 768 MB · 2.0 GB500 m · 768 MB · 2.0 GB500 m · 768 MB · 2.0 GB500 m · 768 MB · 2.0 GB
postgres
Main + Lago + Keycloak + Hangfire DBs
505 m · 1.5 GB · 20.0 GB550 m · 1.5 GB · 20.0 GB750 m · 1.6 GB · 20.1 GB1.75 vCPU · 2.0 GB · 20.8 GB3.00 vCPU · 2.5 GB · 21.5 GB
redis
LiveKit pubsub, backend cache, queues
105 m · 259 MB · 8.0 GB150 m · 286 MB · 8.0 GB350 m · 406 MB · 8.0 GB1.35 vCPU · 1006 MB · 8.0 GB2.60 vCPU · 1.7 GB · 8.0 GB
kafka
Event streaming (spans, webhooks, analytics)
505 m · 1.0 GB · 20.0 GB550 m · 1.0 GB · 20.1 GB750 m · 1.2 GB · 20.5 GB1.75 vCPU · 2.2 GB · 22.5 GB3.00 vCPU · 3.4 GB · 25.0 GB
webhook-receiver
Accepts inbound webhooks (Lago, LiveKit, Twilio)
200 m · 256 MB · 1.0 GB200 m · 256 MB · 1.0 GB200 m · 256 MB · 1.0 GB200 m · 256 MB · 1.0 GB200 m · 256 MB · 1.0 GB
angular-client + widget
Static frontends (nginx)
100 m · 256 MB · 0.5 GB100 m · 256 MB · 0.5 GB100 m · 256 MB · 0.5 GB100 m · 256 MB · 0.5 GB100 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 GB1.00 vCPU · 1.6 GB · 5.0 GB1.00 vCPU · 1.6 GB · 5.0 GB1.00 vCPU · 1.6 GB · 5.0 GB1.00 vCPU · 1.6 GB · 5.0 GB
object storage (S3 / MinIO)
Recordings, transcripts, debug artefacts
200 m · 256 MB · 20.1 GB200 m · 256 MB · 20.6 GB200 m · 256 MB · 23.0 GB200 m · 256 MB · 35.0 GB200 m · 256 MB · 50.0 GB
logging (ES + Kibana + Benthos + otel)
Optional observability stack
1.00 vCPU · 2.0 GB · 50.0 GB1.03 vCPU · 2.0 GB · 50.0 GB1.15 vCPU · 2.1 GB · 50.1 GB1.75 vCPU · 2.5 GB · 50.8 GB2.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-слоя под пиковую нагрузку:

CPU
39.30 vCPU
RAM
36.0 GB
Диск
144.3 GB

Сумма по всем сервисам приложения при 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» — поля станут редактируемыми и пересчёт идёт на лету.

LLM-пресеты
МодельТипПараметрыВеса @FP16KV @8KЛицензия
gpt-oss-120B (MoE)MoE (5.1B активных)117B234 GB0.60 GBApache 2.0
Qwen3-30B-A3B (MoE)MoE (3.3B активных)30.5B61.0 GB0.81 GBApache 2.0
GLM-4.7 (Z.ai, MoE)MoE (32B активных)355B710 GB3.22 GBMIT
Llama-3.3-Nemotron-Super-49B-v1.5Dense49B98.0 GB2.68 GBNVIDIA Open Model
Llama 3.3 70BDense70.6B141 GB2.68 GBLlama Community
Llama 4 Scout (MoE)MoE (17B активных)109B218 GB1.61 GBLlama 4 Community
Mistral Small 3.1 24BDense24B48.0 GB1.34 GBApache 2.0
Gemma 3 27BDense27B54.0 GB4.16 GBGemma Terms
DeepSeek-R1-Distill-Qwen-32BDense32.8B65.6 GB2.15 GBMIT (distill)
DeepSeek-V4-Flash (MoE)MoE (13B активных)284B568 GB1.07 GBMIT
STT-пресеты
МодельПараметрыВесаНа сессиюStreamingRUЛицензия
NVIDIA Nemotron-3.5-ASR Streaming 0.6B (multilingual)600M1.20 GB200 MBNVIDIA Open Model
NVIDIA Parakeet-TDT 0.6B-v3 (multilingual)600M1.20 GB250 MBCC-BY-4.0
NVIDIA Canary-1B-v21000M2.00 GB450 MBCC-BY-4.0
NVIDIA Parakeet-TDT 1.1B (EN-only)1100M2.20 GB320 MBCC-BY-4.0
Whisper Large-v3-Turbo809M1.62 GB280 MBMIT
Faster-Whisper Large-v3-Turbo (INT8)809M0.81 GB220 MBMIT
Whisper Large-v31550M3.10 GB380 MBMIT
Distil-Whisper Large-v3.5750M1.50 GB250 MBMIT
TTS-пресеты
МодельПараметрыВесаНа сессиюCloneRUЛицензия
OpenVoice v270M0.14 GB500 MBMIT
StyleTTS 2130M0.26 GB250 MBMIT
ChatTTS140M0.28 GB250 MBAGPL-3.0
Kokoro TTS (Hexgrad)82M0.16 GB200 MBApache 2.0
Piper TTS (Rhasspy)50M0.10 GB80 MBMIT
Каталог GPU
GPUVRAMКласс
NVIDIA L424 GBдатацентр
NVIDIA A10G24 GBдатацентр
RTX 409024 GBпотребительская
RTX 509032 GBпотребительская
NVIDIA L40S48 GBдатацентр
NVIDIA A100 40GB40 GBдатацентр
NVIDIA A100 80GB80 GBдатацентр
NVIDIA H100 80GB80 GBдатацентр
NVIDIA H200141 GBдатацентр
NVIDIA B200192 GBдатацентр
GPU-слой — self-hosted модели (настройка ниже)
Веса моделей
235 GB
грузятся один раз
KV × 1
9.66 GB
LLM, FP16
Буферы × 1
0.68 GB
STT + TTS
Всего VRAM
246 GB
Рекомендуемая GPU: 2 × NVIDIA B200 (192 GB, datacenter) — tensor-parallel, ≈ 129 GB на каждую.
LLM
117B всего · 5.1B активных (MoE)
Веса 234 GB · KV cache на сессию 9.66 GB
STT
streaming · RU ✓
Веса 1.20 GB · на сессию 200 MB
TTS
voice clone · RU ✓
Веса 0.14 GB · на сессию 500 MB

Веса считаются в 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.

Содержание