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
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 |
- {{n}} {{a.val | toHRBits}}/s bzw. {{a.val | toHRBytes}}/s