HAProxy - distribuição de carga desigual

1

Atualmente, estou testando o haproxy para balancear a carga de nossa geração de newsletters. Criamos boletim informativo personalizado para nossos clientes.

Para isso, usamos dois servidores da Web (máquinas idênticas) e um "mecanismo de email". O mecanismo de e-mail faz chamadas para os servidores da web, que retornam um boletim informativo html personalizado.

Agora, o problema é que um servidor da Web tem um carregamento de CPU de cerca de 75%, mas o outro está executando apenas 15%. Olhando para "Taxa de sessão" ao testar, o servidor tem "Taxa de sessão - > Cur" entre 3 e 4 o tempo todo.

Mas quando se olha para "Sessões", aqui o "Sessions - > Cur" tem um total de 10, o servidor 1 tem um "Cur" de 8 e o outro tem entre 0 e 2.

Por que haveria 8 sessões no primeiro servidor web e 0-2 no outro?

Aqui está minha configuração:

defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        retries 3
        option redispatch
        maxconn 2000
        timeout connect 5000
        timeout client  50000
        timeout server  50000

listen mailgenerator 10.46.70.75:80
        mode http
        stats enable
        balance roundrobin
        option httpclose
        option forwardfor
        option httpchk HEAD /robots.txt
        server mail1 192.168.70.11:80 check weight 100
        server mail2 192.168.70.12:80 check weight 100
    
por Hans Hersbak 17.06.2011 / 09:46

2 respostas

2

Se você usar round robin, as conexões serão distribuídas uniformemente à medida que chegarem, independentemente da carga. Portanto, se você tiver um servidor mais lento ou um processo lento, ele poderá criar uma fila enquanto o outro estiver livre.

Você pode obter uma distribuição muito mais uniforme se usar o balanceamento de desconexão mínima e definir um maxconn baixo por servidor para fazer com que as conexões sejam enfileiradas no haproxy em vez de em cada servidor.

    
por 17.06.2011 / 10:56
0

Para o http, as sessões atuais não significam muito. As sessões Total e LbTot representam melhor como os servidores estão sendo balanceados. Se esses números forem razoavelmente uniformes, pode ser algo em um servidor fazendo com que ele processe seus pedidos mais lentamente, aumentando a carga.

    
por 17.06.2011 / 17:09