Настройка SQM в OpenWrt: CAKE, который реально работает

SQM с дисциплиной очереди cake — стандартное решение проблемы bufferbloat в OpenWrt. Но между sqm-scripts, вводом скорости и выбором пресета легко настроить так, что оно тихо не работает. Здесь — каждая важная настройка, выбор CAKE-пресета и измеренные цифры на реальном стенде (данные 2026-11).

Настройки SQM, которые имеют значение

Параметр (LuCI → Сеть → SQM QoS)Что вводитьЗачем
ВключитьГалочкаБез SQM шейпинга нет
ИнтерфейсWAN (eth0, pppoe-wan)Шейпинг должен стоять на узком месте
Скачивание (кбит/с)Измеренная × 0,85–0,90Запас на накладные расходы; тарифная цифра завышена
Отдача (кбит/с)Измеренная × 0,85–0,90Самое важное поле — upload и вызывает bufferbloat
Дисциплина очередиcakeAQM держит очередь короткой; старые htb — мимо
Скрипт настройкиpiece_of_cake (начать)Пресет для типового случая

Как получить цифры: три скоростных теста в тихий час, медиана, минус 10–15 %, ввести в кбит/с. При смене провайдера или тарифа — перемерять.

Пресеты CAKE QoS: piece_of_cake, diffserv4, besteffort

Термины с форумов cake qos, qos layer, diffserv — это ровно эти пресеты; отдельного пакета «cake qos» не существует.

Измерено: до и после

Стенд: NanoPi R5C (4× Cortex-A55) · 1000M↓/50M↑ DSL. 16-thread saturated download 30 s × 2, concurrent ping, 2-run mean.

МетрикаВЫКЛNetSteer ВКЛИзменение
Avg full-load latency58.6 ms7.8 ms ↓ 87%
Full-load spread (p99−p50)56.4 ms6.9 ms ↓ 88%
Idle latency5.79 ms5.91 ms ≈ flat
Full-load throughput823 Mbps581 Mbps −29%*

* trade-off: enabling cake costs ~29% peak throughput (4-core soft-forward shaping overhead) in exchange for deterministic full-load latency; both still far above typical daily use.

Два пути к сети без лагов

А. Только софт — SQM на текущем OpenWrt-роутере (до ~300–500 Мбит/с на классе MT7621). Б. Железо с SQM — более сильный CPU, см. наш гид по роутерам (EN). Быстрая проверка: включите SQM, повторите тест буферизации и следите за CPU (top) — ниже ~70 % остаётесь, упирается в 100 % — переходите к Б.

Как NetSteer это автоматизирует

NetSteer находит недостающие пакеты (sqm-scripts + cake), подбирает пресет под измеренную скорость и записывает те же настройки — с честным A/B: сначала базовая линия при выключенном SQM, затем реальный выигрыш. Если линия уже хорошая, NetSteer покажет «без изменений» — это честно.

Далее: RPS/IRQ на все ядра (EN) и Fullcone NAT (EN).

FAQ

Какую скорость указывать в настройках SQM?

Измеренную, а не заявленную в тарифе. Если тест ночью показывает 912/47 Мбит/с при тарифе 1000/50, вводите 85-90 % от этого (около 800/42) — запас на сетевые накладные расходы. Завышенная скорость — причина №1, по которой SQM «не работает».

Какой пресет CAKE выбрать для игр?

Начните с piece_of_cake (по умолчанию): лучший баланс задержки и пропускной способности для домашнего трафика. diffserv4 полезен при VoIP и приоритизации DSCP, но требует чуть больше CPU. besteffort — один класс без приоритетов, для слабых процессоров.

Есть ли минус у SQM?

Да — CAKE меняет пиковую скорость на задержку. На нашем стенде NanoPi R5C (4 ядра) пропускная способность под нагрузкой упала примерно на 29 %, зато задержка под нагрузкой снизилась на 87 %. Для игр и звонков обмен почти всегда оправдан.