Por que minha rede diminuiria a velocidade?

1

A rede no meu trabalho tem cerca de 40 computadores e algumas impressoras. Quando há muitas pessoas trabalhando, a rede fica lenta. Eu posso testar o ping entre o meu computador e o roteador e ele continuará subindo, às vezes até o ponto em que ele expira.
O roteador que estamos usando está rodando o Ubuntu em um processador de átomos e tem 4gb de ram.

Quando a rede retarda o processo, Ksoftirq estará usando a maior parte, se não todo o poder de processamento. Descobri que Ksoftirq é um processo que lida com solicitações irq . Além disso, quando a rede fica mais lenta, eu capturei pacotes do roteador e usei o tshark e olhei para ele usando wireshark no meu laptop. Com a captura, mostre muitos pacotes com TCP Dup ACK e TCP Retransmissions. Os destinos das retransmissões TCP Dup e TCP são para a maioria dos computadores na rede, mas há alguns que são muito mais do que outros.

Como este problema pode ser causado?

    
por monkthemighty 09.07.2012 / 21:57

3 respostas

3

É bem provável que a placa Ethernet do roteador seja uma droga ou não esteja configurada corretamente para esse tipo de uso.

As placas Ethernet gigabit de classe de servidores modernos (ou roteadores) fornecem serviços como coalescência de interrupções e Large Receive Offload (LRO) para impedir que o processador host seja sobrecarregado com interrupções por pacote. Outros recursos de descarregamento, como Transmit Segmentation Offload (TSO) e soma de verificação de hardware também ajudam a manter o processador host menos ocupado, mas não necessariamente relacionados à interrupção.

Certifique-se de que seu adaptador Ethernet é capaz dessas coisas e de que você tenha todas elas ativadas. Se não for capaz de interromper a coalescência e a LRO, considere atualizar para uma boa NIC Ethernet de classe de servidor.

    
por 09.07.2012 / 22:11
2

A resposta curta à sua pergunta é sim, são sinais de um roteador que não consegue lidar com a carga que está sendo solicitada. A CPU está gastando a maior parte do tempo imaginando como lidar com os pacotes que recebeu e as operações de nível superior estão ficando famintas.

A solução óbvia é substituir o roteador por um usando hardware mais capaz. No entanto, pode ser possível otimizar a configuração do roteador.

Por exemplo, digamos que você tenha várias portas bloqueadas. Se você testar cada porta bloqueada com uma regra, muitos lotes terão que ser testados por cada uma dessas regras. Se 95% do seu tráfego for para a porta 80, adicionar uma regra "permitir" na parte superior permitirá que a maior parte do tráfego ignore a maioria das regras. Da mesma forma, adicionar uma regra "aceitar se fizer parte de uma conexão estabelecida" no topo, se a cadeia de entrada puder ajudar.

O roteador também pode estar com pouca memória ou esgotando os slots de conexão . Quando o roteador estiver fora dos slots de conexão, ele se recusará a estabelecer novas conexões. Quando as coisas estão ruins, veja se net.netfilter.nf_conntrack_count está próximo de net.netfilter.nf_conntrack_max . Se for, e você tiver a memória, aumente o limite. Se você não tiver a memória, poderá reduzir um pouco os tempos limite.

    
por 09.07.2012 / 22:11
0

Se você estiver usando um roteador Wifi, é provável que esteja sofrendo de buffer bloat . Esta é uma condição temporária que é corrigida pelo ciclo do poder do roteador.

    
por 17.08.2012 / 03:22