Um backup começa a subir, o contador de transferência parece saudável, e a videochamada vira papa. O link não tem falta de largura de banda no sentido que esse número sugere; os pacotes esperam numa fila em algum lugar e os interativos ficam atrás dos dados volumosos. Isso é o atraso de fila, comumente chamado de bufferbloat. Uma VPN pode adicionar a sua própria fila, mas raramente cria o problema sozinha.

Largura de banda e atraso são medições diferentes

A taxa de transferência responde quantos dados se movem por segundo, enquanto o atraso responde quanto tempo um pacote leva para atravessar o caminho. Um link saturado pode manter um grande acúmulo e ainda relatar boa taxa de transferência, porque a fila escoa na velocidade da linha quando a rajada termina. O tráfego interativo sofre primeiro, pois uma chamada precisa de um pacote a cada poucos milissegundos, não de um arquivo grande no final. Por isso, medir apenas o resultado de um teste de velocidade esconde o sintoma que o fez olhar.

Repare também na direção sob carga. Um buffer de envio cheio pode atrasar todo o resto enquanto a capacidade de download fica ociosa.

Meça a ida e volta sob carga

Faça uma linha de base num link tranquilo e depois repita a mesma medição enquanto uma transferência controlada roda. Compare as duas execuções em vez dos números absolutos.

ping -c 20 -i 0.2 203.0.113.5
dd if=/dev/zero bs=1M count=50 | ssh [email protected] "cat > /dev/null"

O primeiro comando amostra o tempo de ida e volta, e o segundo cria um envio contínuo sem precisar de um serviço de teste de velocidade. Uma linha de base que fica plana seguida de uma execução sob carga que sobe centenas de milissegundos é a assinatura a procurar. Algumas redes baixam a prioridade do ICMP, então trate o ping como pista e confirme com a exibição de latência do próprio aplicativo. Mantenha o teste curto em links com limite de dados, porque um contraste repetível importa mais que uma saturação longa.

Mova a fila para onde está o gargalo

O gerenciamento de filas só ajuda no dispositivo que realmente segura o acúmulo. Inspecione o que a interface está fazendo antes de adicionar regras.

tc -s qdisc show dev eth0
tc qdisc replace dev eth0 root fq_codel

O comando show informa a disciplina atual além dos contadores de acúmulo e descarte, o que lhe diz se esta interface é o gargalo ou apenas deixa o tráfego passar. Substituir a disciplina raiz por um algoritmo de fila justa dá aos fluxos curtos a sua própria vez em vez de uma única FIFO compartilhada com dados volumosos. Aplique-o na interface WAN do roteador quando o roteador for o gargalo, não no dispositivo do túnel por hábito. Mantenha a configuração anterior e teste novamente tanto a capacidade de resposta sob carga quanto a velocidade de transferência, porque uma velocidade massiva um pouco menor é uma boa troca por chamadas utilizáveis.

O que o túnel muda e o que esconde

Uma VPN adiciona criptografia e um salto extra, e também esconde fluxos individuais de equipamentos fora do túnel. Isso importa quando um dispositivo a montante oferece priorização por aplicativo, já que vê pacotes criptografados em vez das conversas originais. Um roteador que termina o túnel sozinho tem uma visão e uma carga de trabalho diferentes e pode classificar dentro dele. Nenhum dos dois arranjos remove a fila no link de acesso, que geralmente é onde o atraso se acumula.

Se o atraso não acompanha a carga, pare de ajustar filas e olhe para outro lugar: condições do Wi-Fi, problemas de tamanho de pacote ou uma saída ruim. Ajustes de fila aplicados sem medição apenas deslocam o mistério.

Artigos relacionados