haproxy maxconn e sessões de cookie

3

Eu tenho qualquer instância sob um balanceador de carga haproxy. Estou usando os cookies haproxy para fazer com que cada cliente se conecte ao mesmo servidor durante toda a sua sessão.

agora a coisa é, eu gostaria de configurar a variável maxconn no haproxy para o limite que os meus servidores podem manipular, que é, digamos, 1000.

Eu gostaria de ter certeza, no entanto, que no caso de este limite ser atingido, isso só se aplica a novas conexões, e não às pessoas que já estão logadas no sistema. É assim que funciona? Se não, como posso conseguir isso?

    
por carmelo arena 02.05.2012 / 15:44

1 resposta

0

O servidor maxconn aplica-se a conexões TCP simultâneas ao servidor para não sobrecarregar o servidor. No entanto, conexões em excesso não são rejeitadas, elas são enfileiradas e encaminhadas para o servidor assim que ele libera outra conexão. Existem duas filas, uma no backend para qualquer conexão de entrada e outra no servidor dedicada a conexões explicitamente destinadas a esse servidor (solicitações com cookies). Então, o que acontece é que as conexões de novos visitantes são enfileiradas no back-end e selecionadas por qualquer servidor, enquanto as conexões de visitantes já vistos são enfileiradas no servidor e escolhidas por este apenas.

Você parece acreditar que o maxconn conta os visitantes simultâneos, embora sejam realmente conexões simultâneas. Você pode facilmente ter 10000 visitantes simultâneos com apenas 100 conexões TCP simultâneas. O maxconn é analógico para a configuração MaxClients do Apache e deve ser definido um pouco abaixo do limite do servidor.

Você também observará que muitos servidores apresentam um desempenho melhor com valores maxconn mais baixos, e você pode ficar tentado reduzindo o valor para melhorar o desempenho. Não diminua muito, porém, como você quer ser capaz de cobrir as situações em que seu servidor atende respostas lentas (por exemplo: aguarda por um servidor de banco de dados).

    
por 06.05.2012 / 11:47