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
1 De APLUfr -
Suite à la publication du lien dans le Journal du Hacker (https://www.journalduhacker.net/s/b...), je me permet de répondre ici a un commentaire « C'est dommage de ne pas avoir de comparatif avant/après. ».
En effet, je n’ai pas de fait de test avant après, cet article a été fortement inspiré d’un article de NixCraft (https://www.cyberciti.biz/cloud-com...) qui dans son article indique être passé de 250Mbits à 800Mbits.
A noter que sur une connexion avec peu de latence et peu de perte de paquet cela ne changera pas grand chose.
2 De gangan -
ça change pas grand chose dans le trou ou je suis :(