TCP BBR et sysctl réseau
BBR (Bottleneck Bandwidth and Round-trip propagation time) est un algorithme de contrôle de congestion TCP de Google. Sur un VPS Performance HolyCloud, associé à des réglages sysctl adaptés, il peut améliorer le débit et réduire la latence sur les liens à forte bande passante ou perte modérée.
Prérequis
- Noyau Linux 4.9+ (BBR v1) ; BBR v2 sur noyaux récents (optionnel)
- Accès root ou sudo
- Compréhension : les gains dépendent du chemin réseau ; pas de miracle sur lien saturé côté client
- Sauvegarde de la config réseau avant modification
Vérifier le noyau et l'algorithme actuel
uname -r
sysctl net.ipv4.tcp_congestion_control
sysctl net.core.default_qdisc
lsmod | grep tcp_bbr
Si tcp_bbr absent :
sudo modprobe tcp_bbr
echo "tcp_bbr" | sudo tee /etc/modules-load.d/bbr.conf
Activer BBR (v1)
Fichier /etc/sysctl.d/99-network-bbr.conf :
# file d'attente et buffers
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
# buffers TCP (ajustez selon RAM — exemple VPS 4 Go)
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
# optimisations générales
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_slow_start_after_idle = 0
net.ipv4.tcp_mtu_probing = 1
Appliquez :
sudo sysctl --system
sysctl net.ipv4.tcp_congestion_control
Résultat attendu : bbr.
Paramètres sysctl complémentaires (serveur web)
# connexions entrantes
net.core.somaxconn = 4096
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.ip_local_port_range = 1024 65535
# TIME_WAIT (serveur très connecté)
net.ipv4.tcp_tw_reuse = 1
tcp_tw_reuseest sûr pour les connexions sortantes ; ne remplacez pas une architecture keep-alive / pool.
IPv6
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.forwarding = 0
Si vous n'utilisez pas IPv6, désactiver peut simplifier — HolyCloud fournit souvent IPv4+IPv6 : testez avant désactivation.
Vérifier l'effet
ss -tin | grep -i bbr | head
Test de débit (depuis le VPS vers un serveur externe) :
sudo apt install -y iperf3
iperf3 -c ping.online.net -R
Comparez avant/après à heure et chemin réseau identiques. Variations normales ±10 %.
Monitoring latence
ping -c 20 1.1.1.1
mtr -rwzbc100 8.8.8.8
BBR ne corrige pas un mauvais routage vers votre audience — CDN reste pertinent pour le web mondial.
Rollback
sudo rm /etc/sysctl.d/99-network-bbr.conf
sudo sysctl -w net.ipv4.tcp_congestion_control=cubic
sudo sysctl --system
BBR v2 (noyaux récents)
Sur certaines distributions :
sysctl net.ipv4.tcp_available_congestion_control
# si bbr2 présent
sudo sysctl -w net.ipv4.tcp_congestion_control=bbr2
Testez en staging : comportement différent sur liens très lossy.
Précautions
- Ne copiez pas des « sysctl magiques » de forums sans adaptation RAM/workload.
- Conteneurs LXC/Docker héritent souvent du sysctl hôte — configurez l'hôte VPS.
- Pare-feu HolyCloud +
iptablesrestent prioritaires sur la QoS TCP.
Dépannage
| Problème | Piste |
|---|---|
| ---------- | ------- |
| BBR non listé | Noyau trop ancien, module non chargé |
| Pas de gain | Goulot applicatif, disque, PHP — pas le réseau |
| Connexions étranges | Revenir à cubic pour isoler |
Besoin d'aide ?
Ticket avec sysctl -a | grep tcp, uname -r, type d'offre VPS Performance et description du flux (upload, streaming, API).