Bandbreitenrechner für BigBlueButton

Bandbreitenrechner?

Jeder, der mit BigBlueButton zu tun hat, stellt früher oder später die Frage: Wie viele Konferenzen und Konferenzteilnehmer verkraftet mein Server? Während CPU und RAM meistens nicht problematisch sind, wird Netzwerkbandbreite sehr schnell knapp. Wie viel Bandbreite benötigt mein Server also?

Auf der Webseite von BigBlueButton (siehe Dokumentation) werden dazu keine genauen Angaben gemacht. Es werden jedoch Formeln angegeben, mit denen man ausrechnen kann, bei wie vielen Teilnehmern wie viel Bandbreite anfällt. Weiterhin bemerkt man sofort, dass die benötigte Bandbreite sehr stark von Parametern wie z.B. aktiviertes Audio, aktivierte Webcam oder Screenshare abhängig ist. Und das pro Konferenzteilnehmer. Noch schlimmer: Wenn man einen TURN-Server betreibt, muss man die Bandbreite auch für den TURN-Server berücksichtigen. Hat man Pech und alle Teilnehmer einer Konferenz sitzen in einem abgeschirmten Firmennetzwerk, kann es passieren, dass die gesamte Bandbreite am BBB-Server UND am TURN-Server anfällt.

Es kam deshalb die Idee auf, einen einfach zu bedienenden Rechner zu erstellen, in dem man einfach gewisse Parameter (Annahmen) einträgt und der Rechner rechnet dann ganz genau die benötigte Bandbreite aus.

Stimmen die Werte denn?

Wir haben so gut es ging jeden Wert des Rechners in der Realität überprüft. Es ist zum Beispiel herausgekommen, dass die Dokumentation von BBB von theoretischen 40 Kbit/s für die Audioverbindung ausgeht. In der Realität fielen aber eher 60 Kbit/s an. Der Rechner hat deshalb beide Werte.

Aus unserer Erfahrung können wir also sagen: Ja, für eine BBB-Standardinstallation stimmen diese Werte.

Annahmen

Direktverbundene Teilnehmer
- davon mit Webcam
- davon mit Screenshare
Pro Konferenz kann immer nur max. 1 Screenshare genutzt werden (Direktverbunden + TURN).
TURN-Verbundene Teilnehmer
Geben Sie die per TURN verbundenen Teilnehmer ZUSÄTZLICH zu den oben genannten "direktverbundenen" Teilnehmern ein. Die Gesamtzahl aller Teilnehmer ist also direktverbundene TN + TURN TN.
- davon mit Webcam
- davon mit Screenshare
Pro Konferenz kann immer nur max. 1 Screenshare genutzt werden. (Direktverbunden + TURN)
Webcam bitrate
Audio / VOIP bitrate (kb/s)
Screenshare bitrate

Ergebnis

Gesamt verbundene Teilnehmer{{getParticipants()}}
- davon mit Webcam{{getParticipantsWithWebcam()}}
- davon mit Screenshare{{getParticipantsWithScreenshare()}}

Client

Eingehender Client-Traffic (Teilnehmer selbst ohne Webcam, mit & ohne selbst aktiviertes Screenshare){{getInboundTrafficClient(0) | sumup | toHRBits}}/s bzw. {{getInboundTrafficClient(0) | sumup | toHRBytes}}/s
Eingehender Client-Traffic (Teilnehmer selbst mit Webcam, mit & ohne selbst aktiviertes Screenshare){{getInboundTrafficClient(1) | sumup | toHRBits}}/s bzw. {{getInboundTrafficClient(1) | sumup | toHRBytes}}/s
Ausgehender Client-Traffic (Teilnehmer selbst ohne Webcam, ohne selbst aktiviertes Screenshare){{getOutboundTrafficClient(0,0) | sumup | toHRBits}}/s bzw. {{getOutboundTrafficClient(0,0) | sumup | toHRBytes}}/s
Ausgehender Client-Traffic (Teilnehmer selbst mit Webcam, ohne selbst aktiviertes Screenshare){{getOutboundTrafficClient(1,0) | sumup | toHRBits}}/s bzw. {{getOutboundTrafficClient(1,0) | sumup | toHRBytes}}/s
Ausgehender Client-Traffic (Teilnehmer selbst ohne Webcam, mit selbst aktiviertes Screenshare){{getOutboundTrafficClient(0,1) | sumup | toHRBits}}/s bzw. {{getOutboundTrafficClient(0,1) | sumup | toHRBytes}}/s
Ausgehender Client-Traffic (Teilnehmer selbst mit Webcam, mit selbst aktiviertes Screenshare){{getOutboundTrafficClient(1,1) | sumup | toHRBits}}/s bzw. {{getOutboundTrafficClient(1,1) | sumup | toHRBytes}}/s

Server

Eingehender Server-Traffic{{getInboundTrafficServer() | sumup | toHRBits}}/s bzw. {{getInboundTrafficServer() | sumup | toHRBytes}}/s
Ausgehender Server-Traffic{{getOutboundTrafficServer() | sumup | toHRBits}}/s bzw. {{getOutboundTrafficServer() | sumup | toHRBytes}}/s

TURN-Server

Eingehender Server-Traffic{{getInboundTrafficTurnServer() | sumup | toHRBits}}/s bzw. {{getInboundTrafficTurnServer() | sumup | toHRBytes}}/s
Ausgehender Server-Traffic{{getOutboundTrafficTurnServer() | sumup | toHRBits}}/s bzw. {{getOutboundTrafficTurnServer() | sumup | toHRBytes}}/s