Настройка 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 |
| Дисциплина очереди | cake | AQM держит очередь короткой; старые htb — мимо |
| Скрипт настройки | piece_of_cake (начать) | Пресет для типового случая |
Как получить цифры: три скоростных теста в тихий час, медиана, минус 10–15 %, ввести в кбит/с. При смене провайдера или тарифа — перемерять.
Пресеты CAKE QoS: piece_of_cake, diffserv4, besteffort
- piece_of_cake (по умолчанию) — diffserv0, лучший баланс для смешанного домашнего трафика. Если сомневаетесь — оставьте.
- diffserv4 — четыре уровня приоритета DSCP (массовый/обычный/видео/голос), нужен при VoIP, стоит немного CPU.
- besteffort — один класс без приоритетов; для слабых CPU или отладки.
Термины с форумов 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 latency | 58.6 ms | 7.8 ms | ↓ 87% |
| Full-load spread (p99−p50) | 56.4 ms | 6.9 ms | ↓ 88% |
| Idle latency | 5.79 ms | 5.91 ms | ≈ flat |
| Full-load throughput | 823 Mbps | 581 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 %. Для игр и звонков обмен почти всегда оправдан.