Eu percebo que muitas perguntas semelhantes já foram feitas, mas até agora eu ainda não encontrei uma solução para o meu problema.
Eu tenho um servidor linux virtual (rodando Debian Squeeze) que eu uso para testar as velocidades do site, a fim de medir o aumento e a diminuição do tempo de carregamento dos sites. Estou tentando limitar a largura de banda e a latência desse servidor para poder me aproximar dos tempos de carregamento do mundo real nos sites, mas até agora falhei.
O que eu quero especificamente é o seguinte:
- Para definir uma latência de entrada e saída de 50 ms.
- Para definir um limite de largura de banda de entrada de 512 kbps.
- Para definir um limite de largura de banda de saída de 4096 kbps.
Eu tenho lido no netem e usando o comando tc
, mas ainda está um pouco acima da minha cabeça. Consegui reunir esse comando para controlar a latência que parece funcionar, mas não tenho certeza se isso lida apenas com a latência de saída ou com os dois:
tc qdisc add dev eth0 root netem delay 50ms
Todos os gurus da rede em torno disso podem me ajudar?
Editar:
Depois de mais pesquisas, cheguei à metade do meu objetivo, usando esse comando todo o tráfego de saída se comporta como eu quero:
tc qdisc add dev eth0 root tbf rate 4.0mbit latency 50ms burst 50kb mtu 10000
No entanto, ainda não consegui regular o tráfego de entrada corretamente. Eu aprendi que eu deveria usar um "filtro Ingress Policer" Eu tenho tentado fazer exatamente isso com o comando abaixo, brincando com valores diferentes, mas sem sorte.
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
A largura de banda é afetada pelo comando, os valores acima fazem a velocidade começar em 2MB / se, à medida que a transferência avança, caem lentamente para cerca de 80-90kB / s, alcançando após 30 segundos de transferência.
Alguma idéia do que estou fazendo errado?