Augmenter la bande passante avec TCP BBR

Il y a quelques jours, je suis tombé sur un article qui explique comment Google a augmenté le débit et réduit la latence de son infrastructure avec un nouveau algorithme de congestion pour TCP : BBR.

On parle ici d’une augmentation de 4 à 15 % selon les tests de Google.

Pour activer cet algorithme, il faut disposer d’un kernel Linux récent avec le support des bonnes options.

Vérifier les options du kernel

La commande suivante doit vous retourner au moins la ligne CONFIG_TCP_CONG_BBR et CONFIG_NET_SCH_FQ.

$ egrep 'CONFIG_TCP_CONG_BBR|CONFIG_NET_SCH_FQ' /boot/config-$(uname -r)
CONFIG_TCP_CONG_BBR=m
CONFIG_NET_SCH_FQ_CODEL=m
CONFIG_NET_SCH_FQ=m

Si vous n’avez pas, inutile de continuer, mettez à jour un kernel Linux plus récent, je n’ai pas regardé l’introduction des patchs, mais le kernel 4.9 de debian le supporte.

Activer l’algorithme TCP BBR

La solution la plus simple, créer un fichier nommé : /etc/sysctl.d/88-tcp_bbr.conf

avec le contenu suivant :

net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr

Puis lancer la commande suivante avec les droits root.

sysctl --system

Vérifier la prise en compte

Pour vérifier la prise en compte, rien de plus simple que d’afficher les valeurs prises par le système :

# sysctl net.core.default_qdisc net.ipv4.tcp_congestion_control
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

On constate ici que les deux options de configuration ont les bonnes valeurs.

À défaut, vous aurez le résultat suivant (il s’agit de l’algorithme par défaut)

# sysctl net.core.default_qdisc net.ipv4.tcp_congestion_control
net.core.default_qdisc = pfifo_fast
net.ipv4.tcp_congestion_control = cubic

Haut de page