O Apache sendo executado como proxy reverso usando o tráfego do balanceador de proxy não parece ser distribuído uniformemente

1

Temos o Apache rodando como proxy reverso usando o balanceador de proxy. Nós executamos um teste de carga jMeter de 7 máquinas em nuvem, mas o tráfego parece não ser distribuído uniformemente. Estou pensando que é um problema de configuração do Apache, mas não tenho certeza do que

Basicamente, na nossa diretiva VirtualHost eu tenho:

   ProxyPreserveHost on
   ProxyRequests Off
   ProxyPass / balancer://my-site/
   ProxyPassReverse / balancer://my-site/
   Header add Set-Cookie "route=.%{BALANCER_WORKER_ROUTE}e; path=/"

e

<Proxy balancer://my-site>
   BalancerMember https://MYMACHINE:8443 route=1 loadfactor=20
   BalancerMember https://MYMACHINE:8443 route=2 loadfactor=20
   ProxySet stickysession=route
</Proxy>

No começo, ele não tinha loadfactor = 20 e o balanceamento de carga não era bem feito depois que eu adicionei, houve melhora, mas não ótima. O tráfego ainda seria roteado para mais de 1 a 2 máquinas do que para as outras (temos um total de 5 máquinas).

    
por Wils 20.01.2012 / 21:40

1 resposta

1

Como você está executando sessões persistentes, não é possível esperar que a carga de trabalho de cada membro seja exatamente igual. Se eu entendi bem, você tem 7 máquinas fazendo pedidos e 5 máquinas no balanceador para responder a essas solicitações - se esse for o caso, então 3 servidores recebem 1 cliente cada e 2 servidores recebem 2 clientes cada - então isso seria completamente esperado.

Isso será igual à medida que a contagem de nós aumenta, mas é impossível obter uma distribuição perfeitamente uniforme quando você está usando uma sessão persistente.

A atribuição dinâmica de uma solicitação leva em conta as contagens de solicitações atribuídas por padrão, mas obviamente não pode fazer uma alteração em um nó depois de ter sido colada; não está contando quantos nós foram presos em cada backend.

Você pode tentar adicionar ProxySet lbmethod=bybusyness à sua configuração <Proxy balancer://my-site> ; isso pode ajudar a nivelar as coisas um pouco mais para cargas mais altas (mas não mudará nada quando você estiver lidando com contagens tão baixas de clientes).

    
por 20.01.2012 / 22:45