tencent cloud

Cloud Virtual Machine

Como evitar a perda de pacotes PAWS

PDF
Modo Foco
Tamanho da Fonte
Última atualização: 2026-02-03 10:26:00

Contexto

O parâmetro tcp_tw_recycle é usado para reciclagem rápida de conexões no estado TIME-WAIT. No entanto, em alguns cenários, este parâmetro pode causar problemas de perda de pacotes PAWS, especialmente quando há NAT (conversão de endereços de rede) na rede. Portanto, geralmente recomenda-se desativá-lo.
A seguir estão as etapas para desativar tcp_tw_recycle e configurar tcp_tw_bucket.

Etapas de Uso

Desativar tcp_tw_recycle

Desativação temporária

sudo sysctl -w net.ipv4.tcp_tw_recycle=0

Desativar permanentemente

1. Editar o arquivo /etc/sysctl.conf e adicionar ou modificar as seguintes linhas:
net.ipv4.tcp_tw_recycle = 0
2. Então, aplique as configurações:
sudo sysctl -p

Configurar tcp_tw_bucket

O parâmetro tcp_tw_bucket é usado para configurar o número de buckets de conexão no estado TIME-WAIT. Aumentar este valor pode ajudar o sistema a lidar melhor com um grande número de conexões no estado TIME-WAIT.

Configuração temporária

sudo sysctl -w net.ipv4.tcp_max_tw_buckets=4096

Configuração permanente

1. Editar o arquivo /etc/sysctl.conf e adicionar ou modificar as seguintes linhas:
net.ipv4.tcp_max_tw_buckets = 4096
2. Então, aplique as configurações:
sudo sysctl -p

Outras otimizações relacionadas

Além dos dois parâmetros mencionados acima, existem outros parâmetros do kernel que podem ajudar a otimizar o tratamento de conexões TCP:

Aumentar o limite de descritores de arquivo

sudo sysctl -w fs.file-max=100000

Aumentar o número máximo de arquivos que o sistema pode abrir

Editar o arquivo /etc/security/limits.conf e adicionar ou modificar as seguintes linhas:
* soft nofile 65535
* hard nofile 65535

Aumentar o número máximo de conexões que o sistema pode suportar

sudo sysctl -w net.core.somaxconn=65535

Aumentar o comprimento da fila de conexões semiabertas

sudo sysctl -w net.ipv4.tcp_max_syn_backlog=65535

Reduzir o tempo limite do estado TIME-WAIT

sudo sysctl -w net.ipv4.tcp_fin_timeout=15

Verificar a configuração

Você pode usar o seguinte comando para verificar se as configurações entraram em vigor:
sysctl -a | grep tcp_tw
sysctl -a | grep file-max
sysctl -a | grep somaxconn
sysctl -a | grep tcp_max_syn_backlog
sysctl -a | grep tcp_fin_timeout

Reiniciar serviços

Se você estiver otimizando um serviço específico (como servidor Web, banco de dados etc.), recomenda-se reiniciar esse serviço para garantir que os novos parâmetros do kernel entrem em vigor.

Ajuda e Suporte

Esta página foi útil?

comentários