В данном руководстве описывается процесс активации TCP BBR на Ubuntu. TCP BBR представляет собой алгоритм контроля перегрузки, разработанный компанией Google. Он решает проблемы, присущие классическим алгоритмам, таким как Reno и CUBIC. По заявлениям Google, BBR позволяет значительно повысить пропускную способность и снизить задержку. Этот алгоритм уже внедрён на серверах Google.com и YouTube, а его стандартизация Internet Engineering Task Force (IETF) началась в июле 2017 года. Аббревиатура BBR расшифровывается как Bottleneck Bandwidth and RTT.
BBR требует изменений исключительно на стороне отправителя. Активировав TCP BBR на вашем Linux-компьютере, вы сможете повысить комфорт работы в интернете. В случае использования Linux в качестве веб-сервера, TCP BBR поможет ускорить загрузку страниц, улучшая взаимодействие пользователей с вашим сайтом.
Содержание статьи
Убедитесь в корректной настройке алгоритмов контроля перегрузки TCP в Linux.
В Linux по умолчанию применяются алгоритмы управления перегрузкой Reno и CUBIC. Чтобы узнать, какие алгоритмы доступны, выполните следующую команду.
sysctl net. ipv4.tcp_available_congestion_control
net. ipv4.tcp_available_congestion_control = Кубическая реновация.
Для проверки алгоритма управления перегрузкой, применяемого в данный момент, выполните следующее.
sysctl net. ipv4.tcp_congestion_control
net. ipv4.tcp_congestion_control = cubic
Удостоверьтесь, что используете ядро Linux версии 4.9 или новее.
Поддержка TCP BBR появилась в Linux с версии ядра 4.9. Чтобы узнать, какая версия ядра установлена на вашей системе, выполните следующую команду.
uname - r
Ubuntu 18.04 оснащена ядром версии 4.13.
4.13.0-16-generic
Ubuntu 20.04 основана на ядре версии 5.4.
5.4.0-96-generic
В Ubuntu 22.04 задействовано ядро версии 5.15.
5.15.0-25-generic
Активируйте TCP BBR в Ubuntu.
Убедившись, что ваше ядро версии 4.9 или выше, внесите изменения в файл sysctl.conf.
sudo nano /etc/sysctl.conf
В конце файла необходимо добавить следующие две строки.
net. core. default_qdisc=fq net. ipv4.tcp_congestion_control=bbr

Сохраните изменения в файле и закройте его. После этого обновите настройки sysctl.
sudo sysctl - p
Если вы корректно вставили упомянутые две строки в файл, они появятся в выводе, как показано ниже.
linuxbabe@ubuntu:~$ sudo sysctl - p net. core. default_qdisc = fq net. ipv4.tcp_congestion_control = bbr
Теперь убедитесь в корректности используемого алгоритма управления перегрузкой.
sysctl net. ipv4.tcp_congestion_control
net. ipv4.tcp_congestion_control = bbr
Поздравляем! Вам удалось активировать TCP BBR на Ubuntu.
Повышение быстродействия
Я применил прокси Shadowsocks на недорогом VPS для тестирования TCP BBR. Результат значительно повысил скорость. На следующем скриншоте показана скорость подключения к YouTube до активации TCP BBR на моем прокси-сервере. Как видно, скорость составила всего около 400 Кб/с (50 КБ/с).

После активации TCP BBR на моем прокси-сервере скорость соединения YouTube составила 9878 Кб/с, что соответствует примерно 1234 КБ/с. Мой прокси-сервер ускорился в 24 раза!

На втором прокси-сервере Shadowsocks скорость возросла с приблизительно 10 Мбит/с до около 62 Мбит/с (64172 Кбит/с) после активации TCP BBR.

Не деактивируйте функцию масштабирования окна TCP.
Чтобы устранить проблему, возможно, вам придется отключить масштабирование окна TCP, однако это может существенно ухудшить производительность сети. Для активации масштабирования окна TCP добавьте следующую строку в файл /etc/sysctl.conf.
net. ipv4.tcp_window_scaling = 1
После этого внесите изменения.
sudo sysctl - p
На этом всё! Надеюсь, что данный урок был полезен для вас и помог активировать TCP BBR на Ubuntu. Если вы считаете эту информацию ценной, не забудьте подписаться на нашу бесплатную рассылку, чтобы получать ещё больше полезных советов и рекомендаций.
Анализ эффективности работы
- Отслеживание работы сервера на базе Linux с использованием Netdata (2022)

