Usar cgroup & tc no Linux parece NÃO aplicar exatamente minhas taxas: discrepância de 10x

Usar cgroup & tc no Linux parece NÃO aplicar exatamente minhas taxas: discrepância de 10x

Estou usando a maneira "padrão" que encontrei em todos os lugares da Internet (incluindo ServerFault) para tentar limitar a largura de banda de um processo, usando cgroups & tc.

O que vejo na prática é que os limites que estabeleci tcserão cerca de 10 vezes maiores na prática, veja esta imagem:

insira a descrição da imagem aqui

Eu configurei ratee ceilpara 100kbit (NÃO 100kbps), então espero ver meu wget abaixo mostrar cerca de 10 kilobytes por segundo. Em vez disso, vejo 500kBps.

Se eu atualizar minha taxa de htp para 100kbps(100 kilobytes por segundo) vejo minha taxa subir para 10Megabytes/segundo, que é 100 vezes mais:

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

Não entendo por que isso não é coerente com minha configuração htb. Você tem alguma ideia do que estou fazendo de errado?

Responder1

Com tc, você está moldando a velocidade de upload. Com o wget, você está testando a velocidade de download. No seu teste, você está modelando o ACK TCP enviado pelo seu cliente, então podemos concluir que a relação dados/ack é de 1:100 no seu caso.

Você pode moldar a velocidade de download redirecionando com tc os fluxos de entrada para uma interface ifb e modelando-a.Aquivocê tem um exemplo de como fazer isso.

informação relacionada