Bufferbloat: почему при загрузке растёт ping и как это исправить

Ping · Bufferbloat · SQM · CAKE · FQ-CoDel

Bufferbloat: почему при загрузке растёт ping и как это исправить

Интернет может показывать 300, 500 или 1000 Мбит/с в Speedtest и при этом лагать в играх, видеозвонках и удалённой работе. Частая причина — bufferbloat: при полной загрузке канала пакеты накапливаются в очереди, и задержка резко растёт. Разберём, как проверить проблему, чем SQM отличается от обычного QoS и зачем нужны CAKE и FQ-CoDel.

GamingVideo callsUploadOpenWrt SQMCAKEFQ-CoDel

Что такое bufferbloat простыми словами

Bufferbloat возникает, когда сетевое устройство накапливает слишком большую очередь пакетов. Вместо того чтобы быстро отбросить лишнее и заставить транспортный протокол снизить скорость, пакеты продолжают ждать своей очереди.

Клиентысоздают трафик
Очередьстановится длинной
WANмедленнее входящего потока

Пропускная способность при этом может оставаться высокой. Главная проблема — резко увеличивается время ожидания пакета.

Как понять, что проблема похожа на bufferbloat

Ping без нагрузки нормальный

Например, 10–20 мс.

При загрузке ping резко растёт

Может стать 100–300 мс и выше.

Игра лагает, когда кто-то качает файл

Хотя интернет по скорости «быстрый».

Видеозвонок портится при backup

Особенно если NAS начинает выгружать данные в облако.

Тормозит удалённый рабочий стол

Мелкие интерактивные пакеты стоят за большим bulk-трафиком.

Проблема исчезает при ограничении скорости

Сильный диагностический признак.

Почему высокая скорость и низкий ping — разные задачи

Speedtest в основном показывает, сколько данных можно передать за единицу времени. Для игры, VoIP, видеозвонка и удалённого рабочего стола важнее задержка и её стабильность.

ThroughputСколько Мбит/с

Важен для загрузок, резервного копирования и больших файлов.

LatencyСколько миллисекунд

Важна для интерактивных приложений.

Можно иметь 500 Мбит/с и плохой игровой опыт, если каждый интерактивный пакет вынужден долго ждать в очереди.

Почему забитый upload часто ломает интернет сильнее download

Даже при скачивании TCP-клиент должен отправлять подтверждения. Если исходящий канал полностью забит резервным копированием, облаком, камерой или торрентом, ACK и другой служебный трафик тоже начинают ждать.

Типичная ситуация

Тариф 500/50 Мбит/с. NAS начинает выгружать backup на 50 Мбит/с. Исходящий канал заполнен полностью, ping растёт, видеозвонок начинает заикаться, хотя download почти свободен.

Именно поэтому SQM на upload часто даёт особенно заметный эффект на асимметричных подключениях.

Как проверить bufferbloat

  1. Проверьте ping без нагрузки.
  2. Запустите интенсивную загрузку или выгрузку.
  3. Продолжайте измерять ping.
  4. Сравните рост задержки.
  5. Повторите отдельно для download и upload.
  6. После настройки SQM повторите тест в тех же условиях.
Смотрите не только на средний ping.

Важны максимальные всплески, jitter и то, насколько задержка меняется именно под нагрузкой.

Обычный QoS и SQM — не одно и то же

Классический QoS часто строится вокруг приоритетов: игре высокий приоритет, загрузкам низкий. Это может помогать, но не всегда устраняет саму причину длинной очереди.

Priority QoSКто важнее

Классифицирует трафик и распределяет приоритет.

SQMКак не дать очереди раздуться

Управляет bottleneck и длиной очередей, используя современные queue disciplines.

OpenWrt использует Smart Queue Management именно как инструмент контроля bufferbloat.

Что делает FQ-CoDel

FQ-CoDel объединяет flow queueing и алгоритм CoDel. RFC 8290 описывает его как планировщик, который распределяет трафик по потокам и применяет управление очередью так, чтобы удерживать задержку низкой.

Большая загрузкаbulk flow
+
Играмаленький интерактивный flow
FQ-CoDelизоляция потоков

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

Что такое CAKE

CAKE — queue discipline для Linux, объединяющая shaping, active queue management и flow isolation. Она создавалась как практический способ контролировать задержку на реальных интернет-каналах.

Shapingконтролирует скорость
AQMне даёт очереди разрастаться
Flow isolationразделяет конкурирующие потоки
Diffservможет учитывать классы трафика

CAKE не делает интернет быстрее физического тарифа. Обычно максимальная измеряемая скорость немного уменьшается, зато latency под нагрузкой становится намного стабильнее.

SQM в OpenWrt

В OpenWrt для настройки Smart Queue Management используется пакет SQM. Официальная документация OpenWrt рекомендует применять SQM для борьбы с bufferbloat и поддерживает современные queue disciplines, включая CAKE.

Интерфейс и названия пунктов могут отличаться между версиями OpenWrt.

Перед настройкой смотрите актуальную документацию вашей версии и убедитесь, что роутер имеет достаточную производительность.

Базовая логика проста: SQM должен контролировать очередь немного раньше, чем очередь начнёт бесконтрольно формироваться у провайдера, модема или другого bottleneck.

Почему в SQM ставят скорость немного ниже реальной

Если у провайдера bottleneck находится на 100 Мбит/с, а программный shaper выставлен ровно на 100 Мбит/с или выше, очередь всё ещё может формироваться за пределами вашего контроля.

SQM rate < реальный устойчивый bottleneck Точный запас подбирают измерением, а не универсальным процентом для всех линий.

Часто начинают с небольшого уменьшения относительно устойчиво измеренной скорости и затем проверяют latency под нагрузкой. Цель — найти баланс между throughput и задержкой.

Почему SQM сложнее на LTE, 5G и других плавающих каналах

На фиксированном Ethernet- или оптическом тарифе bottleneck обычно относительно стабилен. В LTE/5G пропускная способность может меняться каждую минуту из-за радиосигнала, загрузки базовой станции и планировщика оператора.

Фиксированный каналПроще настроить

Можно подобрать стабильный shaper rate.

LTE / 5GСкорость постоянно меняется

Статический лимит либо слишком низкий, либо в какой-то момент перестаёт удерживать очередь.

Для таких сценариев существуют адаптивные решения, которые динамически меняют CAKE bandwidth по измеряемой задержке и доступной скорости, но они сложнее статического SQM.

SQM может упереться в процессор роутера

Shaping и управление очередями требуют вычислений. На старом роутере включение CAKE на высокой скорости может снизить максимальный throughput не из-за алгоритма как такового, а потому что CPU перестал успевать обрабатывать пакеты.

Если после включения SQM скорость резко упала, смотрите загрузку CPU.

Особенно это важно на гигабитных и multi-gig подключениях.

OpenWrt продолжает развивать производительность SQM, включая multi-core варианты CAKE, но совместимость и реальный прирост зависят от платформы.

Почему SQM полезен для игр, даже если игра потребляет мало трафика

Онлайн-игре обычно не нужны сотни мегабит. Ей важнее, чтобы небольшой пакет не ждал за гигабайтной загрузкой другого устройства.

Без SQMGame packet ждёт

Перед ним большая очередь bulk-трафика.

С SQMОчередь контролируется

Интерактивный поток меньше страдает от большой загрузки.

То же относится к Zoom, Teams, VoIP, RDP, VPN и управлению умным домом через удалённое соединение.

Нужно ли ставить игре максимальный приоритет

Не всегда. Хорошая flow isolation уже способна сильно уменьшить влияние одного «жадного» потока на другой. Избыточная ручная классификация усложняет сеть и может создавать неожиданные эффекты.

Сначала имеет смысл настроить нормальный bottleneck management и измерить результат. DSCP/приоритеты добавляют только если есть конкретная задача и понимание того, как они обрабатываются по всей цепочке.

Типичные ошибки при борьбе с высоким ping

Покупать более быстрый тариф

Большая полоса может уменьшить вероятность насыщения, но сама по себе не устраняет плохое управление очередью.

Смотреть только Speedtest

Высокий throughput не показывает latency под нагрузкой.

Ограничивать только один компьютер

Очередь может создавать любое устройство дома.

Ставить SQM выше реальной скорости

Тогда bottleneck остаётся за пределами контроля роутера.

Слишком сильно резать канал

Latency станет хорошей, но вы зря потеряете большую часть тарифа.

Игнорировать CPU

Слабый роутер может не тянуть SQM на нужной скорости.

Практический алгоритм настройки

  1. Измерьте устойчивый download и upload проводом.
  2. Измерьте ping без нагрузки.
  3. Измерьте ping при полном download и upload.
  4. Включите SQM на WAN.
  5. Выберите CAKE или рекомендованный современный qdisc.
  6. Задайте скорость немного ниже устойчивого bottleneck.
  7. Повторите тест задержки под нагрузкой.
  8. Постепенно увеличивайте лимит, пока latency остаётся приемлемой.
  9. Проверьте CPU роутера.
  10. Сохраните результат и повторите тест в часы пик.

Частые вопросы

Почему ping растёт только когда кто-то что-то скачивает?

Вероятная причина — очередь на узком месте канала. Когда она переполняется ожидающими пакетами, интерактивный трафик тоже начинает ждать.

Почему ping растёт при загрузке в облако?

Upload легко полностью занять backup, облачной синхронизацией или камерой. При этом в той же очереди ждут ACK, DNS, голос и игровые пакеты.

Что лучше: CAKE или FQ-CoDel?

Оба предназначены для снижения задержки очередей. CAKE объединяет shaping, AQM и flow isolation в одном qdisc и очень популярен в SQM-сценариях OpenWrt. Выбор зависит от платформы и задачи.

SQM уменьшает скорость?

Обычно немного да, потому что shaper специально ставят ниже фактического bottleneck. Это плата за контроль очереди и более стабильную latency.

Поможет ли SQM на гигабитном интернете?

Может, но роутер должен иметь достаточно производительности, чтобы выполнять shaping на такой скорости. Иногда bottleneck уже настолько высок, что проблема проявляется редко.

Нужно ли SQM, если никто не забивает канал?

Если канал никогда не насыщается и latency остаётся стабильной, практической пользы может быть мало.

Почему на LTE SQM настроить труднее?

Потому что реальная скорость радиоканала постоянно меняется. Статический shaper может то слишком сильно ограничивать канал, то переставать контролировать bottleneck.

Вывод

Bufferbloat — это пример ситуации, когда «больше Мбит/с» не означает «лучше интернет». Если при полной загрузке канала ping увеличивается в несколько раз, проблема может быть в длинных сетевых очередях.

SQM с CAKE или FQ-CoDel позволяет перенести контроль bottleneck на ваш роутер и удерживать очередь короткой. Правильная настройка требует измерить реальную скорость, поставить shaper немного ниже устойчивого канала и затем подобрать максимальное значение, при котором latency под нагрузкой остаётся приемлемой.