Fixando o bufferbloat na rede doméstica

9

Em nossa rede doméstica, com IOs de rede contínuos, as latências se tornam ridículas. É bom com cargas leves, mas rapidamente se torna inutilizável se eu estou, por exemplo, rsyncing um grande número de arquivos pequenos, - outras transferências essencialmente param. Os pings passam pouco.

Topologia simples - um modem de banda larga / roteador WIFI em uma única caixa, com alguns clientes sem fio e alguns com fio.

Eu tentei definir ifconfig wlan0/eth0 txqueuelen 1 em todos os clientes, isso parece ajudar um pouco, mas não muito.

Dicas bem-vindas: como devo diagnosticar e eliminar problemas de latência? Há mais configurações que eu possa definir nos clientes, ou talvez um melhor roteador WIFI possa ajudar?

    
por cuu508 29.03.2011 / 10:40

4 respostas

3

O que você precisa é de Qualidade de Serviço e um Algoritmo de Filas que pode ser ajustado. Eu recomendaria uma configuração como esta se você está feliz em jogar com os componentes internos do Linux / FreeBSD e ter algum dinheiro sobrando:

+------+     +--------+      +------+<----> Wireless Access Point
|Router|<--->|Firewall|<---->|Switch|
+------+     +--------+      +------+<----> Wired computers

Onde o Firewall é um Linux ou FreeBSD ou máquina similar com 2 placas de rede que podem impor algumas regras avançadas de enfileiramento e qualidade de serviço no tráfego.

Eu tive que fazer algo semelhante para impedir que as pesquisas de DNS atingissem o tempo limite ao fazer transferências pesadas de dados em uma conexão de internet mais lenta.

A outra opção é obter um roteador melhor - um que você pode instalar dd-wrt ou open-wrt on, pois acredito que esses dois firmwares fornecem mais em termos de QoS, etc., do que roteadores domésticos padrão bog.

    
por 02.04.2011 / 12:33
2

I've tried setting ifconfig wlan0/eth0 txqueuelen 1 on all clients...

Esse comando reduz o tamanho do buffer para 1 pacote nessa máquina. A máquina importante para executar esse comando é o gargalo da sua rede - ou seja, a máquina que tem a conexão gigabit de um lado e a conexão mais lenta com a Internet do outro. Assim, é o roteador que você deseja executar esse comando, não os clientes!
Certifique-se de executar o comando na interface correta (apenas a interface LAN de saída) .

Isso obviamente só funcionará se o seu roteador executar o Linux e permitir que você execute comandos. Felizmente, a maioria dos firmwares personalizados para roteadores domésticos (DD-WRT, OpenWRT, Tomato) funcionam.

Deve-se notar que reduzir o tamanho do buffer como este pode estragar a QoS, portanto, se você estiver usando a QoS no seu roteador, talvez seja melhor deixar o tamanho do buffer sozinho e apenas usando QoS para limitar o upload / velocidades de download de cada cliente significativamente abaixo do upload / download máximo da conexão ... embora isso tenha a desvantagem óbvia de ter largura de banda não utilizada quando apenas uma pessoa está conectada.

    
por 24.05.2012 / 23:45
1

QoS ou Quality of Service é um tipo de ordenação e definição de prioridades para os pacotes que serão processados pelo roteador ... Isto é exatamente o que deve importar quando você tem esses problemas ... Tente pesquisar no painel de configuração de roteadores e ativar o QoS ... É melhor usar as configurações manuais no seu caso, mas você deve saber a ordem de prioridade dos pacotes que você quer que sejam processados do começo ao fim.

    
por 25.05.2012 / 00:55
0

Estou usando o Windows e Mac em vez do Linux, mas uma solução para mim foi mudar de um roteador Netgear logo abaixo da caixa ISPs para um roteador Edge, e configurar o roteamento inteligente (que vem do Linux)

    
por 19.01.2018 / 21:31