Modelando o tráfego de saída para controlar as velocidades de download com o Linux

2

Eu tenho uma situação em que um servidor faz muitas solicitações de grandes servidores da Web todos ao mesmo tempo. Atualmente, não controle a quantidade de solicitações ou a taxa das solicitações do aplicativo que faz isso. As respostas desses servidores da Web são mais do que a linha da Internet pode manipular. (Basicamente, estamos lançando um DoS em nós mesmos).

Vou obter push para corrigir isso no nível do aplicativo, mas, por enquanto, existe alguma maneira de usar o traffic shaping no servidor Linux para controlar isso? Eu sei que só posso moldar o tráfego de saída, mas talvez haja uma maneira que eu possa retardar as respostas TCP para o outro lado irá detectar o congestionamento e isso vai ajudar a minha situação? Se houver algo assim com o tc, como seria a configuração?

A ideia é que o controle de tráfego possa me ajudar a controlar quais pacotes são descartados antes que eles cheguem ao meu roteador.

    
por Kyle Brandt 17.03.2010 / 13:43

3 respostas

3

Você deve ser capaz de limitar as conexões tcp de limite, se os servidores remotos estiverem obedecendo às regras de transmissão e recepção de pacotes tcp, então você deverá ser capaz de limitar o limite para evitar um dos dos.

Eu tive um bom sucesso com o link

do HTB

se você estiver mais familiarizado com Cisco, então você pode implementar uma política de qos em seu gateway em vez de no próprio servidor

usando o qos é uma solução melhor que o iptables --limit, ele garante que o disponível A largura de banda é usada de forma eficaz. Nenhum córrego será esfomeado e cada um será tratado bastante.

HTB é bastante avançado, você pode usar alguns dos outros métodos qos primeiro para obter um lidar com como o qos funciona. É fácil escrever regras qos, mas é muito mais difícil provar eles estão realmente fazendo o que você quer é todos os casos de uso.

    
por 17.03.2010 / 14:52
2

Eu acho que você poderia usar iptables com "--limit", ou talvez hashlimit (ou com recente --seconds --hitcount). [Claro, apenas como uma solução temporária.]

    
por 17.03.2010 / 14:32
0

Que tal usar trickle ? Ele também pode ser executado como trickled para a formatação de largura de banda global link (na verdade, descobri isso sozinho: -)

    
por 18.03.2010 / 16:09