TGViewer
Лаборатория Лиса Лаборатория Лиса @foxfoxcsharp · 79 subscribers
Post #148 448
🌐 Как я «чинил» 500-мегабитный канал, который работал на 5% мощности

Типичная ситуация: у тебя есть два сервера (один в Москве, другой в Европе). Оба бодро рапортуют о канале в 500 Мбит/с до спидтеста (В нидерланды), но туннель WireGuard между ними едва выдает 30-40 Мбит/с. Пакеты теряются пачками (до 50% потерь на UDP!), а TCP превращается в тыкву.

Рассказываю по порядку, как я лечил этот «хронический кашель» сетевого стека.

😱 Проблема: «Дырявая труба»
При тестах iperf3 я увидел страшное:
TCP: 30-40 Мбит/с и тысячи ретрансмиссий.
UDP: Подаем 500 Мбит - доходит только половина.
CPU: Загрузка всего 50%, но есть нюанс - Steal Time до 15%. Это значит, что гипервизор «подворовывает» ресурсы процессора у нашей виртуалки.

Почему так происходило?

TCP Cubic — слишком «трусливый»: Стандартный алгоритм TCP (Cubic) при любой потере пакета думает, что в сети затор, и в ужасе режет скорость в два раза. На «грязных» каналах с потерями 1-2% он просто не может разогнаться.

UDP Bursts (Взрывы трафика): UDP не умеет тормозить. Он выстреливает пакеты огромными пачками. На виртуалке с 1 ядром и высоким Steal Time ядро просто не успевает «проснуться», чтобы забрать пакеты из очереди. Буфер переполняется - пакеты летят в корзину.

Bad Peering: Маршрут между провайдерами оказался перегружен на одном из стыков.

Решение: Тяжелая артиллерия Linux
Я решил не менять провайдера, а заставить систему работать в агрессивном режиме.

TCP BBR (Bottleneck Bandwidth and RTT):
Я переключил алгоритм контроля заторов на BBR от Google. В отличие от Cubic, BBR не боится потерь пакетов. Он смотрит на реальную запускную способность и задержку.
sudo sysctl -w net.ipv4.tcp_congestion_control=bbr


FQ (Fair Queuing) + Pacing:
Для BBR я включил планировщик FQ. Его киллер-фича — Pacing (темпирование). Теперь UDP-пакеты не вылетают безумной толпой, забивая буферы, а идут ровным строем с микропаузами. Это позволило сетевой карте «переваривать» трафик без дропов.

Расширение «зала ожидания» (Buffers):
Я увеличил системные буферы и очереди (net.core.netdev_max_backlog), чтобы у процессора было больше времени на обработку пакетов в моменты, когда его отвлекает гипервизор.

📈 Результаты
После тюнинга цифры в iperf3 заиграли другими красками:
✅ TCP: 40 Мбит/с ➡️ 130 Мбит/с (рост в 3.2 раза!)
✅ UDP: 220 Мбит/с ➡️ 335 Мбит/с
✅ Jitter: Снизился с 1.0 мс до 0.2 мс (стабильность!)

Мораль: Если ваш VPN тормозит — не спешите ругать WireGuard или провайдера (Хотя объективно, провайдер VDSka говно). Возможно, ваша ОС просто слишком вежливая для этого сурового интернета. Включайте BBR + FQ и расширяйте буферы. 🚀

#devops #networking #linux #bbr #wireguard #performance
  • ❤ 5
  • ❤‍🔥 2
  • 🔥 1
  • 🥴 1
More from @foxfoxcsharp
  1. Oct 2, 2026Ща на меня нашла мысль, она довольно очевидная, но пока ее не придумаешь, она не очевидная…
  2. Oct 2, 2026После большой волны блокировок и замедлений ВПН мой выжил. Пока живет. Сейчас у меня кажды…
  3. Sep 23, 2026Я только сейчас заметил одну прикольную странность, у меня моделька серверного шкафа буква…
  4. Sep 22, 2026Channel photo updated
  5. Sep 21, 2026Я уже давно рассматриваю Keycloak для своего маленького сервиса. Но все руки не доходили д…
  6. Sep 18, 2026Мне понравился Дали с его жидкими часами =D
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →