SQM (Smart Queue Management / Gestión Inteligente de Colas)
OpenWrt tiene un paquete llamado SQM para mitigar el bufferbloat, la latencia no deseada que surge cuando su enrutador almacena demasiados datos en el buffer.
Instale el paquete luci-app-sqm
(o sqm-scripts
si no usa LuCI) y lea a continuación.
Descripción general
SQM es un sistema integrado que realiza programación de red por paquete/por flujo, gestión activa de longitud de cola (AQM), modelado de tráfico/limitación de velocidad y QoS (priorización). La QoS “clásica” solo establece prioridades. El AQM “clásico” gestiona únicamente la longitud de las colas.
Bufferbloat es más evidente cuando la conexión está muy cargada de descargas o cargas, lo que provoca una mayor latencia o ping. Provoca un rendimiento deficiente de VoIP y video chat, retrasos en los juegos en línea y hace que la gente observe que “Internet no responde”. Este retraso se mitiga con SQM y una pequeña compensación para alcanzar el rendimiento máximo.
SQM es muy demandante de CPU. Es posible que los dispositivos más lentos no puedan mantener de manera estable su velocidad de conexión.
Preparación: mida su velocidad y latencia actuales
Antes de poder optimizar su red, necesita conocer su estado actual. Cuando su red esté quieta, ejecute una prueba de velocidad para encontrar las velocidades de enlace máximas de descarga/carga: * Realiza una prueba de velocidad desde Waveform o Speedtest. Ambos muestran la latencia durante el tráfico de descarga y carga, y muestran su bufferbloat antes de habilitar SQM..
- If you are using this OpenWrt device as an Extender, Repeater or Bridge, test the bufferbloat of your upstream network device (OpenWrt or otherwise) and determine if an issue is present there first.
Configuración
Para habilitar y configurar SQM en LuCI vaya a Network → SQM QoS. Los valores predeterminados funcionarán; sin embargo, puede mejorar el rendimiento configurando valores específicos para su conexión a Internet que se describen a continuación:
- En la pestaña Basic Settings:
- Marque la casilla Enable
- Establezca la Interface name al enlace de su red de área amplia (WAN). Las interfaces se enumeran en el menú desplegable, o verifique Network → Interfaces para encontrar el puerto WAN.
- Establezca las velocidades de Download y Upload al 90% de lo que midió en Preparación
- En la pestaña Queue Discipline:
- Elija cake como disciplina de cola (o fq_codel, considere nota 2)
- Elija piece_of_cake.qos como script de configuración de cola
- La configuración avanzada puede dejarse sin marcar
- En la pestaña Link Layer Adaptation, seleccione su tipo de enlace (opcional: establezca mpu, vea nota 3):
- Para VDSL - Elija Ethernet, y establezca overhead 34 (o 26 si no está usando PPPoE) (mpu 68). Si el enlace utiliza Ethernet de 100 Mbps, establezca overhead 42 (mpu 84).
- Para DSL de cualquier otro tipo - Elija ATM, y establezca overhead 44 (mpu 96)
- Para Cable DOCSIS - Elija Ethernet, y establezca overhead 22 (mpu 64). Si establece el shaper rate a > 760 Mbps, establezca overhead 42 (mpu 84), porque ahora Ethernet de 1 Gbps entre el módem y el enrutador, en el peor de los casos, afecta la sobrecarga por paquete.
- Para Ethernet o Fibra hasta el edificio - Elija Ethernet, y establezca overhead 44 (mpu 84)
- Si no está seguro, es mejor sobreestimar - Elija overhead 44 (mpu 96)
- Haga clic en Guardar y aplicar.
¡Eso es todo! Puede confirmar la mitigación del bufferbloat volviendo a ejecutar la prueba de velocidad. Cualquier aumento de ping durante las descargas/cargas ahora será mínimo.
Resultados
Como ejemplo, el siguiente usuario está ejecutando OpenWrt 23.05 en un enrutador WRT32X. El internet es un cable módem DOCSIS 3.0 con servicio de 500/35 Mbit. Tenga en cuenta que este ISP incluye un aprovisionamiento excesivo en las descargas. Las pruebas de velocidad se realizaron con y sin SQM. Cake se utilizó con límites de dl/ul del 90% sobre los valores iniciales de la prueba de velocidad. El aumento de la latencia bajo carga se redujo a cero, se observa un ping más bajo sin pérdida de paquetes durante VoIP y juegos en línea durante el uso intensivo de Internet.
Enlace a los resultados de la prueba de velocidad del usuario.
Resultados de Bufferbloat: antes y después de SQM | |||||||
---|---|---|---|---|---|---|---|
QoS | Descarga | Carga | Unloaded Ping | Latencia DL | Latencia UL | grado de Calidad | grado de Bufferbloat |
Ninguno | 532 Mbits | 37 Mbits | 12 ms | +18 ms | +38 ms | B | B |
SQM | 495 Mbits | 28 Mbits | 12 ms | +0 ms | +0 ms | A+ | A + |
Un poco más de puesta a punto
1. Los pasos anteriores manejarán bien la latencia con límites del 85-95% en su rendimiento máximo como un excelente punto de partida. Pero a menudo puede mejorar aún más la velocidad y la latencia mediante un par de pruebas para ajustar la configuración con estos pasos:
- Aumente el límite de velocidad de descarga y vuelva a realizar la prueba hasta que la latencia comience a aumentar, luego vuelva a un valor ligeramente más bajo.
- Repita lo mismo para la velocidad de carga.
- Use Prueba de velocidad de DSLRreports y/o Prueba Blufferbloat de Waveform mientras se configura para lograr calidad A+ y grados A+ de bufferbloat cuando se encuentran las configuraciones óptimas.
- Para DSL, Los experimentos anteriores pueden producir valores de descarga y carga que en realidad son más altos que los resultados de la prueba de velocidad original. Esto está bien, los bytes de trama ATM de un enlace DSL agregan un promedio de 9% de sobrecarga, y estas configuraciones simplemente le indican a SQM cómo compensar esa sobrecarga.
- Para cable DOCSIS, Algunos proveedores de cable engañan las pruebas de velocidad agregando un 10-15% adicional de sobreaprovisionamiento solo durante los primeros 10 segundos (¡para que las pruebas de velocidad se vean mejor!).
2. Cake es a menudo el algoritmo preferido ya que es robusto y eficiente para mitigar el bufferbloat. Sin embargo, fq_codel suele ser una opción más rápida, aunque menos completa. Un usuario encontró esto fq_codel dio aproximadamente un 15% más de rendimiento cuando la CPU era limitada y esto El hilo de correo electrónico mostró resultados similares.
3. Para configurar su enlace mpu (lea Detalles de SQM y pregunta de configuración de SQM) para mejoras de eficiencia. Configurar mpu garantizará que la configuración de la velocidad sea correcta para los paquetes más pequeños.
4. Revise las guías de Preguntas más frecuentes y Solución de problemas de SQM para más información. Vea también: configuración SQM para opciones avanzadas.
5. Considere los parámetros de puesta a punto de Cake en la página de manual: https://man7.org/linux/man-pages/man8/tc-cake.8.html
6. Para alcanzar una puntuación A+ en la Prueba Blufferbloat de Waveform, es obligatorio deshabilitar el Software y Hardware flow offloading - Lea post.