Skip to content

feat(sfu): profil de flux configurable (mesure la charge vidéo)#243

Merged
Pokled merged 1 commit into
mainfrom
feat/sfu-bench-profile
Jul 8, 2026
Merged

feat(sfu): profil de flux configurable (mesure la charge vidéo)#243
Pokled merged 1 commit into
mainfrom
feat/sfu-bench-profile

Conversation

@Pokled

@Pokled Pokled commented Jul 8, 2026

Copy link
Copy Markdown
Owner

Ajoute SFU_BENCH_PAYLOAD / SFU_BENCH_PACKET_MS pour simuler la charge d'un flux vidéo (défaut = audio Opus 80o/20ms). On mesure le coût de forwarding (fonction du débit/paquets, pas du codec).

Mesuré (partage d'écran ~2,2 Mbit/s, mode watch, 1 cœur) : côté CPU un cœur forwarde à des milliers de spectateurs (2400 → 0,74c, 100%). Le frein réel en vidéo = le réseau (bench in-process, calculé à part) : ~450 spectateurs sur 1 Gbit/s, ~4500 sur 10 Gbit/s.

Crate hors-CI, clippy -D warnings clean.

SFU_BENCH_PAYLOAD / SFU_BENCH_PACKET_MS règlent la taille et la cadence des
paquets (défaut audio Opus 80o/20ms). Ex partage d'écran ~2,2 Mbit/s :
PAYLOAD=1100 PACKET_MS=4. On mesure le coût de FORWARDING, qui dépend du débit
et du nombre de paquets, pas du codec (mediasoup relaie sans décoder).

Mesuré (mode watch, 1 partageur vidéo, 1 cœur) : le CPU tient des milliers de
spectateurs (2400 -> 0,74c/100%). Le vrai frein en vidéo = le réseau (in-process
ici, donc calculé à part) : ~450 spectateurs sur 1 Gbit/s, ~4500 sur 10 Gbit/s.

PACKET_MS/PAYLOAD passent de const à fn cachée (OnceLock), rtp_packet redimensionne
la charge utile au profil.
@Pokled Pokled merged commit cce36e4 into main Jul 8, 2026
3 checks passed
@Pokled Pokled deleted the feat/sfu-bench-profile branch July 8, 2026 08:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant