Corrigindo bufferbloat na rede doméstica

9

Em nossa rede doméstica, com as latências contínuas de E / S da rede, fica ridículo. É fácil com cargas leves, mas rapidamente se torna inutilizável se, por exemplo, eu estiver sincronizando um grande número de arquivos pequenos, - outras transferências essencialmente param. Pings passam por pouco.

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

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

Dicas bem-vindas: como devo diagnosticar e eliminar problemas de latência? Existem mais definições de configuração que posso definir nos clientes ou talvez um roteador WIFI melhor possa ajudar?

cuu508
fonte

Respostas:

3

O que você precisa é de Qualidade de serviço e um algoritmo de enfileiramento tweakable. Eu recomendaria uma configuração como esta se você estiver feliz em jogar com os internos do Linux / FreeBSD e tiver algum dinheiro de reserva:

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

Onde o Firewall é uma máquina Linux ou FreeBSD ou 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 interromper o tempo limite das pesquisas de DNS ao fazer transferências pesadas de dados em uma conexão mais lenta à Internet.

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

Majenko
fonte
2

Eu tentei definir ifconfig wlan0/eth0 txqueuelen 1em todos os clientes ...

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 possui a conexão gigabit de um lado e a conexão muito mais lenta da Internet do outro. Portanto, é no roteador em que você deseja executar esse comando, não nos clientes!
Certifique-se de executar o comando na interface correta (apenas na interface da LAN de saída) .

Obviamente, isso 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) o fazem.


Deve-se observar que reduzir o tamanho do buffer como esse pode estragar a QoS; portanto, se você estiver usando a QoS no seu roteador, é melhor deixar o tamanho do buffer em paz e usar a QoS para limitar as velocidades de upload / download de cada cliente estar 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.

BlueRaja - Danny Pflughoeft
fonte
1

QoS ou Quality of Service é uma espécie de ordem e definição de prioridades para os pacotes que serão processados ​​pelo roteador ... É exatamente isso que deve cuidar quando você tiver esses problemas ... Tente pesquisar no painel de configuração dos roteadores e ativar a QoS ... É melhor usar as configurações manuais no seu caso, mas você deve saber a ordem de prioridade dos pacotes que deseja processar primeiro para durar.

morTie
fonte
0

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

George Marengo
fonte