Включение TCP BBR ускоряем сеть в Ubuntu Linux

tcp bbr linux ubuntu

Еще в 2016 году Google выложила патчи ядра Linux для подсистемы сети. Эти патчи реализуют новый алгоритм контроля перегрузки TCP congestion control — BBR. Новый алгоритм позволяет значительно увеличить пропускную способность и уменьшить задержку при передачи данных по сети иногда на порядок. Google уже давно использует данный алгоритм в своей внутренней сети, а так же на таких сервисах как Youtube, что доказывает его высокую эффективность.

Для использования преимуществ BBR достаточно включить его на сервере отправителя, а сетевая инфраструктура и принимающая сторона остаются без изменений. Подробнее о том как именно BBR ускоряет передачу данных вы можете найти в интернете, например есть подробная статья на хабре.

Проверка совместимости с TCP BBR

Чтобы включит BBR в вашей системе необходимо, чтобы ядро было версии не ниже 4.9. Проверить это можно командой uname -a.

uname -r
Linux server1 4.15.0-50-generic #54~16.04.1-Ubuntu SMP Wed May 8 15:55:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Если вы используете дистрибутив Ubuntu 18.04 LTS то ядро уже поддерживает данный алгоритм. В Ubuntu 16.04 LTS необходимо установить актуальное ядро вручную.

Установка актуального ядра в Ubuntu 16.04

Чтобы это сделать введите команду.

sudo apt install --install-recommends linux-generic-hwe-16.04

После завершения установки нового ядра перезагрузите сервер.

Включение BBR в Ubuntu

Включение производится добавлением двух параметров ядра в файл /etc/sysctl.conf

sudo nano /etc/sysctl.conf

Необходимо добавить эти два параметра в самый конец файла.

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

После чего включить добавленные параметры ядра командой:

sysctl -p

Проверить, какой именно алгоритм управления перегрузкой включен можно командой:

sysctl -a | grep congestion

В результате вы увидите примерно следующий вывод:

net.ipv4.tcp_allowed_congestion_control = reno cubic bbr
net.ipv4.tcp_available_congestion_control = reno cubic bbr
net.ipv4.tcp_congestion_control = bbr
sysctl: reading key "net.ipv6.conf.all.stable_secret"
sysctl: reading key "net.ipv6.conf.default.stable_secret"
sysctl: reading key "net.ipv6.conf.ens160.stable_secret"
sysctl: reading key "net.ipv6.conf.lo.stable_secret"

Строка net.ipv4.tcp_congestion_control = bbr свидетельствует о том, что в текущий момент используется алгоритм bbr. Так же обратите внимание, что строка net.ipv4.tcp_available_congestion_control = reno cubic bbr показывает какие еще доступны алгоритмы управления перегрузкой.

Оцените статью
Добавить комментарий

Внимание! Нажимая кнопку "Отправить комментарий" вы соглашаетесь с политикой конфиденциальности сайта.