
Eu estava testando um servidor no EC2 com desempenho de rede "Alto" para verificar o máximo de conexões de saída que poderia usar nele. Sem alterar nenhuma configuração, abrindo cerca de 1000 threads, cada um enviando uma solicitação TCP, após cerca de 10 minutos, recebo o erro de 'conexão recusada', que tenho certeza de que é o problema do meu lado, pois sei que o servidor de destino não veja quaisquer erros.
Eu segui as instruções emEste artigoque fala TIME_WAIT
e Ephemeral ports
então eu fiz isso:
- Aumentando o número de portas efêmeras
- Habilitando tcp_tw_recycle e tcp_tw_reuse
Ao fazer esses dois, ainda recebo erros, mas depois de um período mais longo, como horas. Em geral, quero saber o quanto um servidor Ubuntu com uma configuração de hardware específica pode lidar com o tráfego de rede. Como posso monitorar o tráfego de saída para descobrir o que exatamente deu errado?
Responder1
Para monitorar o tráfego de saída, consulte as seguintes ferramentas: tshark, tcpdump, ettercap.
Veja também estas configurações:
root@server ~ # sysctl -A | grep -i wait
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120