BBR — це сучасний алгоритм керування перевантаженнями TCP, який часто дає вищу пропускну здатність і нижчі затримки на реальних мережах. Нижче — простий і безпечний шлях, як увімкнути його у вашому Linux, перевірити результат і за потреби швидко відкотитися. Поїхали 🚀
Що таке TCP BBR і як це працює
TCP BBR (Bottleneck Bandwidth and RTT) оцінює пропускну здатність вузького місця та мінімальний RTT, намагаючись тримати черги короткими й лінк — максимально завантаженим. На відміну від CUBIC/reno, BBR не покладається на втрати пакетів як на головний сигнал. У типовій інтернет-мережі це дає кращий баланс між швидкістю та latency — саме те, що потрібно для стрімінгів, веб‑сервісів і "важких" копіювань.
Перевірка підтримки та поточної конфігурації
Підтримка TCP BBR є в mainline Linux, починаючи з ядра 4.9 (BBR v1). Переконайтеся, що ваш дистрибутив має відповідне ядро, а також гляньте, який алгоритм використовується зараз. Це корисно і для Linux моніторинг змін до та після налаштування.
uname -r
# Переглянути доступні та активний алгоритми
sysctl net.ipv4.tcp_available_congestion_control
sysctl net.ipv4.tcp_congestion_control
# Якщо модуль BBR збірний, підвантажити його (необов'язково)
sudo modprobe tcp_bbr
lsmod | grep bbr || echo "tcp_bbr не як модуль або не завантажений"
# Переглянути qdisc на інтерфейсі (замініть eth0 на свій)
sudo tc -s qdisc show dev eth0
Ідеальна пара для BBR — це fq як default qdisc. Якщо бачите fq_codel чи pfifo_fast, ми це виправимо в наступному розділі.
Як увімкнути BBR назавжди (безболісний How‑to)
Крок 1. Створити постійний sysctl-файл
Це універсально для більшості дистрибутивів (Debian/Ubuntu, RHEL/Fedora, Arch та ін.).
sudo tee /etc/sysctl.d/99-bbr.conf >/dev/null <<'EOF'
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
EOF
# Застосувати конфігурацію зараз
sudo sysctl --system
Перевіряємо, що все спрацювало:
sysctl net.core.default_qdisc
sysctl net.ipv4.tcp_congestion_control
Крок 2. Активувати без перезавантаження (якщо треба негайно)
Якщо ви не хочете чекати ребута, увімкніть це в рантаймі. Зверніть увагу: зміна default_qdisc вплине на нові інтерфейси/сокети; для вже живих інтерфейсів замінимо qdisc вручну.
# Увімкнути BBR і fq просто зараз
sudo sysctl -w net.core.default_qdisc=fq
sudo sysctl -w net.ipv4.tcp_congestion_control=bbr
# Замінити qdisc на конкретному інтерфейсі (підставте ваш dev)
sudo tc qdisc replace dev eth0 root fq
Перевірка в живих з’єднаннях
Нове з'єднання має показувати cong bbr. Для існуючих може лишатися старий алгоритм до перепідключення.
ss -ti | grep -i cong || echo "Поки що немає активних TCP-сокетів"
Перевірка ефекту та Linux моніторинг
Для чесного заміру зробіть бенчмарк до/після. Це вписується і в план оптимізація продуктивності на вашому сервер Linux.
iperf3: синтетичний тест
# На віддаленій машині (сервер тесту)
iperf3 -s
# На клієнті (можна задати конкретно BBR для сесії)
iperf3 -C bbr -c SERVER_IP -t 20 -P 4
HTTP-завантаження: реалістичний замір
curl -o /dev/null -s -w 'time_connect: %{time_connect}\n time_appconnect: %{time_appconnect}\n time_starttransfer: %{time_starttransfer}\n speed_download: %{speed_download}\n' \
https://speed.hetzner.de/100MB.bin
Також стежте за чергами qdisc та навантаженням CPU/IRQ. У пригоді стане tc -s qdisc, а також класичні інструменти htop/top у терміналі Linux.
Альтернативні способи та коли BBR не зайде
- CUBIC — дефолт у багатьох ядрах. На локальних мережах із дуже низькими затримками виграші BBR можуть бути незначними.
- Якщо у вас чіткий shaping/QoS на маршрутизаторі, або суворі правила AQM (наприклад, лише
fq_codel), перевірте сумісність політик. - На деяких VPS провайдери можуть обмежувати модулі або qdisc у віртуалізації — перевірте документацію.
- BBRv2 у mainline ще експериментальний/поза ядром: не раджу для продакшену.
GUI-спосіб: через Webmin
Якщо вам зручніше в GUI, Webmin дозволяє змінювати sysctl через браузер (зручно для віддалених мережеві налаштування).
# Debian/Ubuntu
sudo apt update
sudo apt install -y wget apt-transport-https gpg
wget -qO- http://www.webmin.com/jcameron-key.asc | sudo gpg --dearmor -o /usr/share/keyrings/webmin.gpg
echo 'deb [signed-by=/usr/share/keyrings/webmin.gpg] http://download.webmin.com/download/repository sarge contrib' | \
sudo tee /etc/apt/sources.list.d/webmin.list >/dev/null
sudo apt update && sudo apt install -y webmin
# RHEL/Fedora
sudo dnf install -y https://download.webmin.com/download/rpm/webmin-current.rpm
Далі в Webmin зайдіть: System → Linux Kernel → sysctl. Додайте/змініть:
net.core.default_qdisc = fqnet.ipv4.tcp_congestion_control = bbr
Застосуйте зміни і перевірте з’єднання. Готово 🙂
FAQ
Чи безпечно вмикати BBR у продакшені?
Так, BBR v1 масово використовується і вважається стабільним. Рекомендую поетапний rollout і заміри до/після.
Чи потрібен саме qdisc fq?
Так, пара BBR+fq дає найкращі результати. Можна лишити fq_codel, але потенційний профіт буде нижчим.
BBR збільшує використання CPU?
Зазвичай — не критично. На швидких лінках можливе невелике зростання навантаження, стежте через Linux моніторинг (htop, sar).
Як швидко відкотитися?
sudo sysctl -w net.ipv4.tcp_congestion_control=cubic
# і повернути qdisc при потребі
sudo tc qdisc replace dev eth0 root fq_codel
Чи працює BBR з VPN (WireGuard/OpenVPN)?
Так, BBR впливає на TCP-трафік поверх тунелю. WireGuard — UDP, але корисний ефект видно для TCP всередині тунелю.
Що з Docker/Kubernetes?
Алгоритм задається на рівні network namespace. За замовчуванням контейнери наслідують налаштування хоста. Для ізольованих кейсів можна задати --sysctl net.ipv4.tcp_congestion_control=bbr для контейнера.
Як побачити, що конкретне з’єднання реально на BBR?
ss -ti dst <IP> | grep -i cong
Чи впливає BBR на firewall або безпеку?
Ні, це транспортний алгоритм. Ваші правила firewall та політики безпеки не змінюються.
Порада від Kernelka
Зробіть невеликий чекліст: заміри (iperf3/curl) до/після, збережіть скріни/вивід, відкрийте тикет команді з коротким підсумком. Якщо це великий сервер Linux із високим навантаженням — розгорніть BBR поетапно 10% → 50% → 100% і тримайте під рукою команду відкату. Маленький контроль — велика впевненість 🛠️
Підсумок
- BBR дає кращий баланс між throughput і latency у більшості інтернет-мереж.
- Увімкнення просте:
net.core.default_qdisc=fqіnet.ipv4.tcp_congestion_control=bbr. - Перевіряйте ефект через iperf3, curl та
ss -ti; відстежуйте через інструменти Linux моніторинг. - За потреби — миттєвий відкат на CUBIC однією командою.
- Гарний вибір для продакшену й мережеві налаштування на будь-якому сервер Linux.

Прокоментувати
На сайті відображається лише твоє ім'я та коментар. Електронна пошта зберігається виключно для зв'язку з тобою за потреби та в жодному разі не передається стороннім особам.