Eu só estou tentando enrolar minha cabeça em torno de filas / timeouts no HaProxy entre um frontend, back-end e um servidor. Eu ainda estou aprendendo sobre TCP, sockets, conexões etc, então me perdoe se qualquer uma dessas perguntas não fizer sentido. Estou apenas procurando confirmação / esclarecimento sobre alguns desses itens:
O próprio Haproxy tem um global maxconn
limite (eu chamarei isso de gmc
). Pelo que entendi, esse gmc
está em conexões recebidas de clientes (roteados para front-ends).
Cada frontend tem sua própria configuração de maxconn
(eu chamarei femc
).
Se meu gmc
for 40 e eu tiver dois frontends com femc
de 10 e receber 50 solicitações em de uma vez só.
Perguntas:
backlog
é relevante somente no frontend. Continuando com o exemplo acima, adicionaremos um back-end para cada front-end, ambos com dois servidores com maxconn
de 2 cada ( smc
) e um maxqueue de 1 ( smq
).
Assim, cada back-end pode manipular 4 solicitações simultâneas (2 por servidor) e enfileirar 2 solicitações (1 por servidor) 6 solicitações totais por back-end
Perguntas:
Estou perguntando tudo isso porque temos um servidor legado com propriedades de solicitação MUITO heterogêneas. Alguns podem acontecer em 10ms
, alguns 10s
. Atualmente, não temos nenhum limite em conexões de servidores, e estamos vendo alguns dos backlogs de nosso servidor web sendo preenchidos por solicitações muito lentas, enquanto outras estão quase ociosas. Por fim, estou tentando amenizar isso um pouco.
Todas as respostas para as perguntas acima seriam SUPERÁVEIS!