The Jerusalem PostIRGC labels Trump 'big liar,' says US must admit failure in campaign against IranPunchZuckerberg, Pichai, others to meet Trump as AI safety pressure buildsRTP DesportoJaime Faria falha acesso ao quadro principal do torneio de TóquioBollywood HungamaEXCLUSIVE: Karan Tacker to return as Gaurav Tiwari? Bhay Season 2 likely to go on floors in January 2027InquirerLPA outside PAR may develop into tropical depression within 24 hoursDaily MaverickPATHWAYS TO PEACE: Ukraine hoping SA will announce progress on returning abducted childrenSouth China Morning PostChina mourns death of music legend Liu Huan, voice of 2008 Beijing Olympic theme songRTL BoulevardOpnieuw Nederlandse laadpalenmaker onderuit: BlueMarble faillietColliderLegolas Has Been Officially Confirmed for the Next 'The Lord of the Rings' ReleaseSCMP ChinaCan China’s new satellite coordination standards boost PLA targeting and resilience?La PresseLa revue de presse de Paul Arcand | Le vote stratégique, la vente d’alcool dans les arénas et les meilleurs prix dans les circulaires, vraiment ?VnExpress InternationalVietnamese student clinches top 3 spot in world's largest Chinese-language competition
The Daily Newsstand · Free, Always
Tuesday, September 29, 2026

Пробуем прокачать сеть между цодами

Translate

Представим распределённую инфраструктуру в разных регионах. Между площадками есть VPN: он даёт связность и защищает трафик. Каждый час нужно передать бэкап объёмом 50 GB и развернуть его в другом регионе.

Чтобы уложиться в час, нужна стабильная полезная скорость. Но после запуска cronjob оказывается, что передача идёт заметно медленнее: RTT около 30 ms, иногда теряются пакеты, а бэкап не успевает скачаться даже за пару часов.

30 ms между регионами - само по себе нормально. Проблема обычно в сочетании задержки, потерь, очередей на пути и одного TCP-потока.

Частая причина - не сам VPN, а алгоритм управления перегрузкой TCP, который работает на сервере-отправителе.

По умолчанию на Linux используется CUBIC. Он постепенно увеличивает окно TCP и воспринимает потери пакетов как сигнал перегрузки. На длинном или неидеальном канале это может привести к тому, что доступная полоса используется не полностью.

Google в 2016 году представил BBR - Bottleneck Bandwidth and Round-trip time. И вместо того чтобы ориентироваться в первую очередь на потери, новый лагоритм пытается оценить:

  1. максимальную пропускную способность узкого места;

  2. минимальный RTT;

  3. сколько данных нужно держать "в полёте", чтобы загрузить канал, но не раздувать очереди.

Периодически BBR осторожно проверяет, не выросла ли доступная полоса, а затем возвращается к рассчитанному рабочему режиму.

Важно понимать, что BBR - не магическая кнопка "ускорить сетку" и не замена диагностике. Он не исправит узкий канал, неверный MTU, перегруженный VPN-шлюз, медленный диск или реальную потерю пакетов из-за проблем в сети. Но на межрегиональных TCP-передачах может дать очень заметный эффект.

И ещё важный нюанс: BBR влияет на TCP-соединения, которые создаёт сам хост. Если VPN-шлюз просто маршрутизирует или NAT’ит трафик, включение BBR только на нём не ускорит проходящие через него TCP-сессии. Включать его нужно прежде всего на сервере, который реально отправляет большой объём данных.

Например, если rsync передаёт файлы из региона A в регион B, BBR нужен на сервере в регионе A, который отправляет содержимое файлов.

Где это имеет смысл пробовать включить BBR:

  • передача бэкапов между регионами;

  • rsync и репликация больших объёмов данных;

  • выгрузки из хранилищ;

  • сервисы с длинными TCP-соединениями между облаками или ЦОДами;

  • серверы, которые реально являются отправителями трафика.

Включается очень просто - на Linux сначала проверяем, доступен ли алгоритм:

sysctl net.ipv4.tcp_available_congestion_control

Если в выводе есть bbr, можно включить его для новых TCP-соединений:

sudo sysctl -w net.ipv4.tcp_congestion_control=bbr

Для постоянной настройки после теста можно добавить параметры в отдельный файл:

sudo tee /etc/sysctl.d/90-bbr.conf <<'EOF'
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
EOF

sudo sysctl --system

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

Сравнивать лучше до и после, причём и одним потоком, и несколькими:

# Один TCP-поток — ближе к одному backup/rsync-потоку
iperf3 -c YOUR_IP -t 60 -P 1

# Суммарная доступная полоса при нескольких потоках
iperf3 -c YOUR_IP -t 60 -P 16

# Проверка обратного направления
iperf3 -c YOUR_IP -t 60 -P 1 -R

Тестируйте на отдельном окне или в согласованное время: iperf3 -P 16 вполне способен нагрузить канал так, что коллеги быстро заметят эксперимент 🙂

Ну а если вам инетерсно почитать как это работает под капотом, то начинайте сразу с BBRv3.

View the original on Хабр →

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.