Retourner sur le site

TCP BBR et sysctl réseau

Activer le congestion control BBR et optimiser les paramètres sysctl réseau sur un VPS Linux HolyCloud pour améliorer débit et latence.

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_reuse est 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 + iptables restent 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).