BBR и увеличение пропускной способности.

BBR (Bottleneck Bandwidth and RTT) — алгоритма контроля перегрузки TCP, патчи с которым ещё в 2016 году были опубликованы компанией Google и приняты в основное ядро Linux. Применение этой технологии в некоторых случаях позволяет значительно увеличить пропускную способность канала передачи данных. Несколько тестов и информация по настройке BBR далее.

BBR доступен в ядре Linux версии 4.9 и выше, проверить что в ядре необходимые модули скомпилированы можно командой:

# grep -E "CONFIG_TCP_CONG_BBR|CONFIG_NET_SCH_FQ" /boot/config-$(uname -r)
CONFIG_TCP_CONG_BBR=m
CONFIG_NET_SCH_FQ_CODEL=y
CONFIG_NET_SCH_FQ=m

Для активации BBR, необходимо передать соответствующие параметры с помощью sysctl. Для этого открываем /etc/sysctl.conf и прописываем там:

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

Сохраняем файл и перезагружаем машину, либо перечитываем системные параметры:

# sysctl --system
 ...
 * Applying /etc/sysctl.conf ...
 net.core.default_qdisc = fq
 net.ipv4.tcp_congestion_control = bbr
 ...

После этого можно приступать к тестам и вот что получилось у меня…

  • Тестирование на VDS от Digitalocean не показало серьёзного прироста пропускной способности. Возможно, связано это с тем что на их виртуалках канал и так широкий.
  • Тестирование в рамках виртуальной сети, построенной через OpenVPN приятно удивило:

До активации BBR:

 

После активации BBR:

В этом случае, прирост оказался очевиден.

Всем заинтересовавшимся рекомендую к изучению вот этот перевод, там алгоритм разобран подробно, с иллюстрациями, формулами, и пояснениями.

 

@SysadminNotes | https://sysadmin.pm

2 thoughts on “BBR и увеличение пропускной способности.

  1. Гадал, какого чёрта у меня php’шный speedtest на VPS от Contabo выдавал не больше 10 мбит/сек, думал баг какой-то. После включения BBR тут же выросло до 80-90 мбит/сек (скорость моего wifi). Очень полезная опция, рекомендую.

  2. Уведомление: Openvpn - Записки админа

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *