Haproxy Lento Recarregue no Modo DB

2

Recentemente eu comecei a usar uma ótima ferramenta para balanceamento de carga - Haproxy.

Existe apenas uma coisa perturbadora que não consigo descobrir como lidar com isso. Usamos haproxy para balanceamento de carga do tráfego mysql. Quando há muito tráfego e muitas conexões, leva-se muito tempo para o haproxy recarregar (~ 30 min), com menos tráfego que ele recarrega em 1 min.

Eu recarrego com:

service haproxy reload

É claro que se eu precisar fazer uma mudança urgente na configuração, espero que o haproxy recarregue muito rápido. Matando instâncias do haproxy aguardando que a desconexão cause a desconexão das conexões do msyql.

Parece que cometi um erro nas configurações do haproxy ou nas configurações do aplicativo. Se você souber como resolver isso, por favor me ajude.

Obrigado!

    
por com 01.04.2012 / 11:57

1 resposta

2

Se você passar -sf para HAProxy (provavelmente o que o script de inicialização faz), então o haproxy antigo manipulará as conexões até que elas não sejam mais usadas. Portanto, enquanto houver uma conexão aberta, o haproxy terá duas instâncias até que todas estejam concluídas.

Se o aplicativo usar o pool de conexões (mantendo as conexões abertas para reutilização), poderá demorar um pouco até que essas conexões sejam fechadas. Se você estiver usando o pool de conexão, talvez deseje procurar algum tipo de parâmetro MaxAge que faça com que as conexões sejam fechadas depois de terem sido abertas por um determinado período de tempo (com algo assim, a idade é verificada após a transação ser completo, em outras palavras, antes que a conexão seja retornada ao pool).

    
por 02.04.2012 / 03:59