Ping · Bufferbloat · SQM · CAKE · FQ-CoDel
Bufferbloat: почему при загрузке растёт ping и как это исправить
Интернет может показывать 300, 500 или 1000 Мбит/с в Speedtest и при этом лагать в играх, видеозвонках и удалённой работе. Частая причина — bufferbloat: при полной загрузке канала пакеты накапливаются в очереди, и задержка резко растёт. Разберём, как проверить проблему, чем SQM отличается от обычного QoS и зачем нужны CAKE и FQ-CoDel.
Что такое bufferbloat простыми словами
Bufferbloat возникает, когда сетевое устройство накапливает слишком большую очередь пакетов. Вместо того чтобы быстро отбросить лишнее и заставить транспортный протокол снизить скорость, пакеты продолжают ждать своей очереди.
Пропускная способность при этом может оставаться высокой. Главная проблема — резко увеличивается время ожидания пакета.
Как понять, что проблема похожа на bufferbloat
Ping без нагрузки нормальный
Например, 10–20 мс.
При загрузке ping резко растёт
Может стать 100–300 мс и выше.
Игра лагает, когда кто-то качает файл
Хотя интернет по скорости «быстрый».
Видеозвонок портится при backup
Особенно если NAS начинает выгружать данные в облако.
Тормозит удалённый рабочий стол
Мелкие интерактивные пакеты стоят за большим bulk-трафиком.
Проблема исчезает при ограничении скорости
Сильный диагностический признак.
Почему высокая скорость и низкий ping — разные задачи
Speedtest в основном показывает, сколько данных можно передать за единицу времени. Для игры, VoIP, видеозвонка и удалённого рабочего стола важнее задержка и её стабильность.
Важен для загрузок, резервного копирования и больших файлов.
Важна для интерактивных приложений.
Можно иметь 500 Мбит/с и плохой игровой опыт, если каждый интерактивный пакет вынужден долго ждать в очереди.
Почему забитый upload часто ломает интернет сильнее download
Даже при скачивании TCP-клиент должен отправлять подтверждения. Если исходящий канал полностью забит резервным копированием, облаком, камерой или торрентом, ACK и другой служебный трафик тоже начинают ждать.
Тариф 500/50 Мбит/с. NAS начинает выгружать backup на 50 Мбит/с. Исходящий канал заполнен полностью, ping растёт, видеозвонок начинает заикаться, хотя download почти свободен.
Именно поэтому SQM на upload часто даёт особенно заметный эффект на асимметричных подключениях.
Как проверить bufferbloat
- Проверьте ping без нагрузки.
- Запустите интенсивную загрузку или выгрузку.
- Продолжайте измерять ping.
- Сравните рост задержки.
- Повторите отдельно для download и upload.
- После настройки SQM повторите тест в тех же условиях.
Важны максимальные всплески, jitter и то, насколько задержка меняется именно под нагрузкой.
Обычный QoS и SQM — не одно и то же
Классический QoS часто строится вокруг приоритетов: игре высокий приоритет, загрузкам низкий. Это может помогать, но не всегда устраняет саму причину длинной очереди.
Классифицирует трафик и распределяет приоритет.
Управляет bottleneck и длиной очередей, используя современные queue disciplines.
OpenWrt использует Smart Queue Management именно как инструмент контроля bufferbloat.
Что делает FQ-CoDel
FQ-CoDel объединяет flow queueing и алгоритм CoDel. RFC 8290 описывает его как планировщик, который распределяет трафик по потокам и применяет управление очередью так, чтобы удерживать задержку низкой.
В результате один большой поток не должен так легко заставлять мелкие чувствительные к задержке пакеты ждать за собой.
Что такое CAKE
CAKE — queue discipline для Linux, объединяющая shaping, active queue management и flow isolation. Она создавалась как практический способ контролировать задержку на реальных интернет-каналах.
CAKE не делает интернет быстрее физического тарифа. Обычно максимальная измеряемая скорость немного уменьшается, зато latency под нагрузкой становится намного стабильнее.
SQM в OpenWrt
В OpenWrt для настройки Smart Queue Management используется пакет SQM. Официальная документация OpenWrt рекомендует применять SQM для борьбы с bufferbloat и поддерживает современные queue disciplines, включая CAKE.
Перед настройкой смотрите актуальную документацию вашей версии и убедитесь, что роутер имеет достаточную производительность.
Базовая логика проста: SQM должен контролировать очередь немного раньше, чем очередь начнёт бесконтрольно формироваться у провайдера, модема или другого bottleneck.
Почему в SQM ставят скорость немного ниже реальной
Если у провайдера bottleneck находится на 100 Мбит/с, а программный shaper выставлен ровно на 100 Мбит/с или выше, очередь всё ещё может формироваться за пределами вашего контроля.
Часто начинают с небольшого уменьшения относительно устойчиво измеренной скорости и затем проверяют latency под нагрузкой. Цель — найти баланс между throughput и задержкой.
Почему SQM сложнее на LTE, 5G и других плавающих каналах
На фиксированном Ethernet- или оптическом тарифе bottleneck обычно относительно стабилен. В LTE/5G пропускная способность может меняться каждую минуту из-за радиосигнала, загрузки базовой станции и планировщика оператора.
Можно подобрать стабильный shaper rate.
Статический лимит либо слишком низкий, либо в какой-то момент перестаёт удерживать очередь.
Для таких сценариев существуют адаптивные решения, которые динамически меняют CAKE bandwidth по измеряемой задержке и доступной скорости, но они сложнее статического SQM.
SQM может упереться в процессор роутера
Shaping и управление очередями требуют вычислений. На старом роутере включение CAKE на высокой скорости может снизить максимальный throughput не из-за алгоритма как такового, а потому что CPU перестал успевать обрабатывать пакеты.
Особенно это важно на гигабитных и multi-gig подключениях.
OpenWrt продолжает развивать производительность SQM, включая multi-core варианты CAKE, но совместимость и реальный прирост зависят от платформы.
Почему SQM полезен для игр, даже если игра потребляет мало трафика
Онлайн-игре обычно не нужны сотни мегабит. Ей важнее, чтобы небольшой пакет не ждал за гигабайтной загрузкой другого устройства.
Перед ним большая очередь bulk-трафика.
Интерактивный поток меньше страдает от большой загрузки.
То же относится к Zoom, Teams, VoIP, RDP, VPN и управлению умным домом через удалённое соединение.
Нужно ли ставить игре максимальный приоритет
Не всегда. Хорошая flow isolation уже способна сильно уменьшить влияние одного «жадного» потока на другой. Избыточная ручная классификация усложняет сеть и может создавать неожиданные эффекты.
Сначала имеет смысл настроить нормальный bottleneck management и измерить результат. DSCP/приоритеты добавляют только если есть конкретная задача и понимание того, как они обрабатываются по всей цепочке.
Типичные ошибки при борьбе с высоким ping
Покупать более быстрый тариф
Большая полоса может уменьшить вероятность насыщения, но сама по себе не устраняет плохое управление очередью.
Смотреть только Speedtest
Высокий throughput не показывает latency под нагрузкой.
Ограничивать только один компьютер
Очередь может создавать любое устройство дома.
Ставить SQM выше реальной скорости
Тогда bottleneck остаётся за пределами контроля роутера.
Слишком сильно резать канал
Latency станет хорошей, но вы зря потеряете большую часть тарифа.
Игнорировать CPU
Слабый роутер может не тянуть SQM на нужной скорости.
Практический алгоритм настройки
- Измерьте устойчивый download и upload проводом.
- Измерьте ping без нагрузки.
- Измерьте ping при полном download и upload.
- Включите SQM на WAN.
- Выберите CAKE или рекомендованный современный qdisc.
- Задайте скорость немного ниже устойчивого bottleneck.
- Повторите тест задержки под нагрузкой.
- Постепенно увеличивайте лимит, пока latency остаётся приемлемой.
- Проверьте CPU роутера.
- Сохраните результат и повторите тест в часы пик.
Частые вопросы
Почему 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 под нагрузкой остаётся приемлемой.

