O IP Virtual Server (IPVS) coleta estatísticas por serviço usando um temporizador interno chamado estimation_timer. Em ambientes de grande escala, esse temporizador introduz latência de dezenas a centenas de milissegundos e causa oscilações na rede. Desative o recurso de estimativa no Alibaba Cloud Linux para eliminar essa sobrecarga.
Como o recurso de estimativa causa oscilações
Versões de kernel compatíveis
Para desativar o recurso de estimativa do IPVS, use uma das seguintes versões de kernel do Alibaba Cloud Linux:
|
Distribuição |
Versão mínima do kernel |
|
Alibaba Cloud Linux 2 |
|
|
Alibaba Cloud Linux 3 |
|
Desative o recurso de estimativa
Ao desativar o recurso de estimativa, as estatísticas de serviço do IPVS ficam indisponíveis. Comandos como sudo ipvsadm -Ln --stats deixarão de reportar alterações na contagem de conexões ou no número de pacotes recebidos. Avalie o impacto nas suas cargas de trabalho antes de prosseguir.
-
Conecte-se à sua instância do Elastic Compute Service (ECS).
Para mais informações, consulte Conectar-se a uma instância Linux usando senha ou chave.
-
Configure o parâmetro sysctl.
-
Abra o arquivo de configuração do sysctl:
sudo vim /etc/sysctl.conf -
Adicione a seguinte linha ao final do arquivo, salve e feche:
net.ipv4.vs.run_estimation = 0 -
Aplique a configuração:
sudo sysctl -p
-
-
Aplique configurações adicionais para ambientes de contêiner.
Em ambientes de contêiner, execute as etapas adicionais a seguir.
-
Recarregamentos do módulo IPVS
Sempre que o módulo IPVS for recarregado, execute
sysctl -pnovamente para que a configuração tenha efeito. Para automatizar esse processo, crie um arquivo de configuração do modprobe:-
Crie o arquivo:
sudo vim /etc/modprobe.d/ipvs.conf -
Adicione o conteúdo abaixo, salve e feche:
install ip_vs /sbin/modprobe --ignore-install ip_vs && /sbin/sysctl -p
Isso garante que as definições do
sysctl.confsejam aplicadas automaticamente quando o sistema recarregar o módulo IPVS. -
-
Contêineres com namespace de rede
Se você configurou regras IPVS para contêineres que utilizam namespaces de rede, desative o recurso de estimativa individualmente em cada contêiner.
NotaNo Alibaba Cloud container service for kubernetes (ACK), o modo padrão do kube-proxy é IPVS, e as regras IPVS são configuradas no lado do host. Usuários do ACK não precisam desativar a estimativa em cada contêiner. Pule esta etapa se você utiliza o ACK.
-
-
Verifique se o recurso foi desativado.
Use um dos métodos a seguir para confirmar que o recurso de estimativa está desativado.
-
Método 1: Verificar o parâmetro sysctl. Execute o comando abaixo. Se a saída for
0, o recurso está desativado.sudo sysctl net.ipv4.vs.run_estimation -
Método 2: Verificar as estatísticas do IPVS. Execute o comando a seguir várias vezes. Se os valores estatísticos não mudarem entre as execuções, o recurso está desativado.
ImportanteSe o
ipvsadmnão estiver instalado, instale-o primeiro:sudo yum install ipvsadmsudo ipvsadm -Ln --stats
-
Próximas etapas
Confirme a resolução das oscilações e da latência de rede
Após confirmar que o recurso está desativado, verifique se as oscilações e a latência foram resolvidas:
Teste de ping. Faça um ping para o endereço IP ou nome de domínio da instância ECS. Se a latência permanecer estável e dentro de uma faixa razoável, o problema foi resolvido.
-
Teste de desempenho. Use uma ferramenta de teste de desempenho de rede para medir a latência e as oscilações. Se a latência de cauda longa for reduzida significativamente ou deixar de ocorrer, o problema foi resolvido.
NotaSe as oscilações ou a latência persistirem após a desativação do recurso de estimativa, use o recurso de diagnóstico de rede no console do Container Service for Kubernetes (ACK) para investigar. Para mais informações, consulte Diagnóstico de rede.
Reative o recurso de estimativa
Para reativar a estimativa, defina run_estimation como 1 tanto no arquivo de configuração do sysctl (/etc/sysctl.conf) quanto no arquivo de configuração do modprobe (/etc/modprobe.d/ipvs.conf) e execute sudo sysctl -p para aplicar a alteração.