El uso de cgroup & tc en Linux parece NO aplicar exactamente mis tarifas: discrepancia 10x

El uso de cgroup & tc en Linux parece NO aplicar exactamente mis tarifas: discrepancia 10x

Estoy usando la forma "estándar" que encontré en todas partes de Internet (incluido ServerFault) para intentar limitar el ancho de banda de un proceso, usando cgroups y tc.

Lo que veo en la práctica es que los límites que establezco tcserán aproximadamente 10 veces mayores en la práctica; vea esta captura de pantalla:

ingrese la descripción de la imagen aquí

Configuré ratey ceilen 100 kbit (NO 100 kbps), por lo que espero ver mi wget a continuación para mostrar aproximadamente 10 kilobytes por segundo. En cambio veo 500kBps.

Si actualizo mi tarifa htp a 100kbps(100 kilobytes por segundo) Veo que mi velocidad se dispara hasta 10Megabytes/segundo, que es 100 veces más:

tc class change dev ens3 classid 1:1 htb rate 100kbps

# the curl in the other terminal now shoots up to 9.6MB/s
image.iso.1    53%[================>                ] 346,72M  **9,48MB/s**    tps 49s

No entiendo por qué esto no es coherente con mi configuración de htb. ¿Tienes alguna idea de lo que estoy haciendo mal?

Respuesta1

Con tc, estás dando forma a la velocidad de carga. Con wget, estás probando la velocidad de descarga. En tu prueba eres tú quien le da forma al TCP ACK enviado por tu cliente, por lo que podemos concluir que el ratio datos/ack es 1:100 en tu caso.

Puede configurar la velocidad de descarga redirigiendo con tc los flujos de entrada a una interfaz ifb y dándole forma.Aquítienes un ejemplo de cómo hacerlo.

información relacionada