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 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:
sudo vi /etc/sysctl.conf
Ou
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:
sudo reboot
Depois de reiniciar execute o comando abaixo no terminal novamente:
sudo sysctl --system
Para verificar as configurações execute os comandos abaixo:
sysctl net.core.default_qdisc
sysctl net.ipv4.tcp_congestion_control
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:
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.