BBR auf einem CentOS 7 KVM-Server aktivieren

BBR steht für „Bottleneck Bandwidth and Round-Trip Time“ und ist ein moderner Algorithmus zur Stausteuerung, entwickelt von Google. Dieser wurde direkt in den TCP-Stack des Linux-Kernels integriert. Die Aktivierung von BBR führt in der Regel zu einer deutlich besseren Datenübertragung und geringeren Latenzen bei Netzwerkverbindungen. Ein großer Vorteil von BBR ist die einfache Umsetzung – es genügt, die Konfiguration auf Senderseite anzupassen. Netzwerkgeräte oder Empfänger müssen nicht verändert werden.

Voraussetzungen

  • Ein virtueller CentOS 7 x64 Server
  • Ein Benutzer mit Sudo-Rechten

Schritt 1: Kernel-Aktualisierung über das ELRepo-Repository

Um BBR zu aktivieren, muss der Kernel auf Version 4.9.0 aktualisiert werden. Das geht bequem über das RPM-Repository von ELRepo.

Aktuelle Kernel-Version prüfen

Vor dem Upgrade sollte zunächst die aktuelle Kernel-Version ermittelt werden:

Die Ausgabe sollte in etwa so aussehen:

Dies zeigt, dass aktuell Kernel-Version 3.10.0 verwendet wird.

ELRepo-Repository aktivieren

Nun wird der GPG-Schlüssel sowie das ELRepo-Paket installiert:

sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
sudo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

Neuen Kernel installieren

Über ELRepo lässt sich der aktuelle Mainline-Kernel wie folgt installieren:

sudo yum --enablerepo=elrepo-kernel install kernel-ml -y

Installierte Kernel überprüfen

Zur Bestätigung kann man alle installierten Kernel anzeigen lassen:

Die Liste sollte unter anderem folgende Einträge enthalten:

kernel-ml-4.9.0-1.el7.elrepo.x86_64
kernel-3.10.0-514.el7.x86_64
kernel-tools-libs-3.10.0-514.2.2.el7.x86_64
kernel-tools-3.10.0-514.2.2.el7.x86_64
kernel-3.10.0-514.2.2.el7.x86_64

Kernel 4.9.0 als Standard setzen

Damit das System künftig mit dem neuen Kernel startet, muss der Standard-Eintrag im Bootloader geändert werden. Zuerst werden alle GRUB2-Menüeinträge angezeigt:

sudo egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'

Mögliche Ausgabe:

CentOS Linux 7 Rescue a0cbf86a6ef1416a8812657bb4f2b860 (4.9.0-1.el7.elrepo.x86_64)
CentOS Linux (4.9.0-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-514.2.2.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-514.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-bf94f46c6bd04792a6a42c91bae645f7) 7 (Core)

Da Kernel 4.9.0 an Position 1 steht, kann dieser wie folgt als Standard gesetzt werden:

Neustart durchführen und Kernel prüfen

Um die Änderungen zu übernehmen, starte das System neu:

Nachdem der Server wieder hochgefahren ist, erneut anmelden und die Kernel-Version überprüfen:

Die Ausgabe sollte nun wie folgt aussehen:

Schritt 2: BBR-Stausteuerung aktivieren

Um BBR als aktiven Algorithmus für die Netzwerkkontrolle zu nutzen, musst du bestimmte sysctl-Parameter anpassen:

echo 'net.core.default_qdisc=fq' | sudo tee -a /etc/sysctl.conf
echo 'net.ipv4.tcp_congestion_control=bbr' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

Überprüfe nach dieser Konfiguration, ob BBR korrekt aktiviert ist. Führe dazu folgenden Befehl aus:

sudo sysctl net.ipv4.tcp_available_congestion_control

Die erwartete Ausgabe sollte etwa so aussehen:

net.ipv4.tcp_available_congestion_control = bbr cubic reno

Um zu sehen, welcher Algorithmus aktuell aktiv ist, verwende diesen Befehl:

sudo sysctl -n net.ipv4.tcp_congestion_control

Die erwartete Rückmeldung lautet:

Überprüfe zum Schluss, ob das Kernel-Modul für BBR geladen ist:

Die Ausgabe sollte etwa wie folgt aussehen:

Schritt 3 (optional): Netzwerkgeschwindigkeit mit BBR testen

Um die Leistungsverbesserungen durch BBR zu überprüfen, kannst du einen einfachen Download-Test im Browser durchführen. Installiere dazu zunächst den Apache-Webserver und starte ihn:

sudo yum install httpd -y
sudo systemctl start httpd.service

Erlaube anschließend den HTTP-Zugriff über die Firewall:

sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --reload

Jetzt kannst du eine Testdatei erstellen, die später heruntergeladen werden soll:

cd /var/www/html
sudo dd if=/dev/zero of=500mb.zip bs=1024k count=500

Rufe nun im Browser die folgende URL auf:

http://[deine-server-IP]/500mb.zip

Durch den Download dieser Datei kannst du die Geschwindigkeit deines Netzwerks mit aktivem BBR einschätzen.

Fazit

Wenn du die oben beschriebenen Schritte befolgt hast, ist BBR nun erfolgreich auf deinem CentOS 7 Server aktiviert. Dieser moderne Algorithmus zur Netzwerk-Stausteuerung verbessert die Datenübertragung und verringert Verzögerungen, insbesondere bei hoher Last.

Administrator:innen können BBR einfach aktivieren, da sie nur das sendende System anpassen müssen. So steigern sie die Serverleistung, ohne Clients oder Netzwerkkomponenten verändern zu müssen. Mit aktivierter BBR-Unterstützung ist dein Server nun besser auf anspruchsvolle Netzwerkbedingungen vorbereitet.

Quelle: vultr.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren: