Eu sei que há muitas perguntas e respostas em torno do estado TIME_WAIT
de uma conexão de soquete, mas de alguma forma nenhuma delas (ou talvez de uma perspectiva de especialistas) me ajuda a entender meu problema (ou encontrar possíveis soluções).
Meu cenário é que eu tenho um servidor voltado para a internet, que tem que lidar com milhares de conexões por segundo (ele fornece algum tipo de API). Eu observo que as conexões com o servidor geralmente são possíveis, mas o time_connect
e o time_total
(usando curl
) estão alcançando de 0.009
a 0.526
para o primeiro e 0.134
to 0.926
para o último. Eu também observo uma quantidade enorme de conexões em TIME_WAIT
state - em torno de 32,000+
.
Portanto, minha primeira pergunta é, quantas conexões simultâneas (com uma distribuição Debian padrão configurada) um servidor pode manipular dentro de um segundo, um minuto ou uma hora. Existe alguma fórmula "simples" para calcular o limite lógico de possíveis conexões simultâneas .
Além disso, no futuro, posso não apenas manipular uma conexão de entrada diretamente no servidor em si, mas posso ter que encaminhá-la para um proxy, obter o resultado e retorná-lo. Estou até pensando em utilizar o mecanismo de balanceamento de carga do nginx (se necessário). A segunda questão é, portanto, ter um proxy / carregamento / balanceamento de carga no local, como a fórmula teria que ser modificada?
Minha última pergunta seria: que alternativas existem para aumentar o número de conexões simultâneas, por exemplo,
TIME_WAIT
(isso ajudaria e como), Muito obrigado por qualquer ajuda ou qualquer referência!