Como aumentar a velocidade da internet em servidores Linux com Google BBR!

Google BBR

A velocidade da internet é o assunto do momento. No entanto, existem meios para melhorar a velocidade da internet em servidores Linux evitando latência alta demais e aumentando a largura da banda da internet. Essa tecnologia já beneficia os servidores Google sendo usada no Google Cloud Platform (GCP).

TCP Google BBR

O Google participa ativamente do projeto do algoritmo que é chamado de TCP BBR. Além de obter informações sobre o TCP você também vai saber como aumentar a velocidade da internet em servidores Linux.

O TCP BBR é quem vai fazer todo esse trabalho. Segundo o Google, após a implementação do recurso obtiveram melhorias de tráfego no google.com e uma melhora de 4% da rede YouTube a nível global, chegando a 14% em alguns países.

Vale lembrar que o TCP BBR melhora o tráfego, organiza os pacotes e não é um algoritmo para hackear internet em computadores pessoais, mas para uso em servidores dos quais há tráfego significativo de internet para ter acesso às informações.

Então, o tutorial abaixo pode ser aplicado para host de hospedagens, provedores de internet, enfim, qualquer serviço que dependa de um servidor ligado à internet para funcionar, só que com a velocidade da internet melhor e o envio de pacotes organizado. Não foi feito teste em computadores pessoais!

Mas o que é o BBR?

O BBR (” B ottleneck B andwidth e R ound-trip propagation time”) é um novo algoritmo de controle de congestionamento desenvolvido pela Google. Algoritmos de controle de congestionamento são executados conectados a uma rede que determinam a rapidez com que enviar dados e assim a velocidade da internet em servidores Linux pode ser melhorada.

Como um algoritmo de controle de congestionamento faz isso?

A internet usou muito o controle de congestionamento baseado em perda desde o final da década de 1980, dependendo apenas de indícios de pacotes perdidos, o que causa perda velocidade de internet.

Isso funcionou bem por muitos anos, porque os pequenos buffers de internet, switches e roteadores foram bem adaptados à baixa largura de banda de links da internet. Como resultado, os buffers tendem a preencher e liberar os pacotes em excesso no momento em que os remetentes realmente começaram a enviar dados muito rápido e acabam causando um grande congestionamento, e alguns pacotes deixam de ser enviados e aí começa os gargalos e as chamadas dos clientes do seu provedor de internet.

Mas, o controle de congestionamento baseado em perda é problemático nas diversas redes de hoje. Nos buffers menores, a perda de pacotes ocorre antes do congestionamento. Com os links de longo alcance que usam switches, o controle de congestionamento baseado em perda pode resultar em throughput porque ele reage de maneira exagerada, reduzindo pela metade a taxa de envio após a perda de pacotes, mesmo que a perda de pacotes seja provinda de explosões transitórias (esse tipo de perda de pacotes pode ser bastante frequente, mesmo quando o link está ocioso).

O que o Google disse?

Precisamos de um algoritmo que responda ao congestionamento real, em vez de perda de pacotes. O BBR aborda isso com uma reescrita de controle de congestionamento. Começamos do zero, usando um paradigma completamente novo: para decidir a rapidez com que enviar dados pela rede, o BBR considera a rapidez com que a rede está entregando dados.

Para uma determinada conexão de rede, ele usa medições recentes da taxa de entrega da rede e do tempo de ida e volta para construir um modelo explícito que inclua tanto a largura de banda máxima disponível para essa conexão quanto o atraso de ida e volta mínimo recente. O BBR usa esse modelo para controlar a rapidez com que envia dados e a quantidade máxima de dados que a rede possa transmitir ou receber.

Como aumentar a velocidade da internet em servidores Linux?

Primeiro é importante dizer que para servidores Linux você precisa conferir se duas opções estão compiladas em seu Linux Kernel. Você pode compilar ou usar uma versão mais recente:

As opções são:

  • CONFIG_TCP_CONG_BBR
  • CONFIG_NET_SCH_FQ

Se você estiver usando um Linux Kernel superior ou igual a 5.0 em qualquer distribuição, você já tem os módulos ativados, mas não custa nada verificar. Para isso, execute o comando abaixo:

grep 'CONFIG_TCP_CONG_BBR' /boot/config-$(uname -r)
grep 'CONFIG_NET_SCH_FQ' /boot/config-$(uname -r)
egrep 'CONFIG_TCP_CONG_BBR|CONFIG_NET_SCH_FQ' /boot/config-$(uname -r)

Confira o resultado dos comandos no print abaixo:

como-aumentar-a-velocidade-da-internet-em-servidores-linux

Como habilitar o TCP BBR no Linux Kernel e aumentar a velocidade da internet em servidores Linux? Simples!

Primeiro vamos editar um arquivo de configurações. Para isso, use o editor que você preferir, mas se estiver em um servidor sem interface use o nano ou vi, se você usa o ROOT em seu servidor não precisa executar o sudo nos comandos abaixo:

Terminal
sudo vi /etc/sysctl.conf

Ou

Terminal
sudo vi /etc/sysctl.d/10-custom-kernel-bbr.conf

No mesmo arquivo, adicione as seguintes linhas em ao final do seu arquivo de configuração:

net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr

Agora vamos reiniciar a máquina ou servidor:

Terminal
sudo reboot

Depois de reiniciar execute o comando abaixo no terminal novamente:

Terminal
sudo sysctl --system
Agora aguarde o processamento!

Para verificar as configurações execute os comandos abaixo:

Terminal
sysctl net.core.default_qdisc
A resposta deve ser: net.core.default_qdisc = fq
Terminal
sysctl net.ipv4.tcp_congestion_control
A resposta de ser: net.ipv4.tcp_congestion_control = bbr

Agora, você pode testar fazendo um download usando a sua internet, lembre-se que o download deve ser feito a partir do servidor que recebeu os ajustes!

Exemplo de comando para teste:

Terminal
wget -c http://seu-ip-do-servidor/um-arquivo-grande.iso

Esperamos ter ajudado a você ter uma internet mais rápida, os links de referência estão logo abaixo.