Me doy cuenta de que ya se han hecho muchas preguntas similares, pero hasta ahora todavía no he encontrado una solución a mi problema.
Tengo un servidor Linux virtual (que ejecuta Debian Squeeze) que uso para probar las velocidades del sitio web con el fin de medir el aumento y la disminución del tiempo de carga de dichos sitios web. Estoy tratando de limitar el ancho de banda y la latencia de este servidor para poder acercarme a los tiempos de carga del mundo real en los sitios web, pero hasta ahora he fallado.
Lo que quiero específicamente es lo siguiente:
- Para establecer una latencia entrante y saliente de 50 ms.
- Para establecer un límite de ancho de banda entrante de 512 kbps.
- Para establecer un límite de ancho de banda saliente de 4096 kbps.
He estado leyendo sobre netem y usando el tc
comando, pero todavía está todo un poco sobre mi cabeza. Me las arreglé para armar este comando para controlar la latencia que parece funcionar, pero ni siquiera estoy seguro de si eso solo maneja la latencia saliente o ambas:
tc qdisc add dev eth0 root netem delay 50ms
¿Algún gurú de la red que me pueda ayudar?
Editar:
Después de una mayor investigación, he llegado a la mitad de mi objetivo, usando este comando todo el tráfico saliente se comporta como quiero:
tc qdisc add dev eth0 root tbf rate 4.0mbit latency 50ms burst 50kb mtu 10000
Sin embargo, todavía no he podido regular el tráfico entrante correctamente. Aprendí que se supone que debo usar un "filtro Ingress Policer". Intenté hacer eso con el siguiente comando, jugando con diferentes valores, pero sin suerte.
tc qdisc add dev eth0 ingress
tc filter add dev eth0 parent ffff: protocol ip u32 match ip src 0.0.0.0/0 flowid :1 police rate 1.0mbit mtu 10000 burst 10k drop
Sin embargo, el ancho de banda se ve afectado por el comando, los valores anteriores hacen que la velocidad comience a 2 MB / sy, a medida que avanza una transferencia, cayendo lentamente a alrededor de 80-90 kB / s, que alcanza después de aproximadamente 30 segundos de transferencia.
¿Alguna idea sobre lo que estoy haciendo mal?
netem delay 50ms
No limita la latencia. Aumenta la latencia en50ms
comparación con lo que de otro modo hubiera sido.