Carregue os sites de teste atrás de um balanceador de carga EC2 com o ApacheBench

4

Sempre que tento carregar testar um site com carga balanceada no EC2, recebo a seguinte mensagem:

ab -n 20 -c 20 http://www.somesite.com/

Benchmarking www.somesite.com (be patient)...Send request failed!
apr_socket_recv: Connection reset by peer (54)

Todos os sites hospedados no EC2 sem o balanceador de carga podem ser testados com êxito, então acho que não está relacionado ao grupo de segurança que eu configurei.

O balanceador de carga do AWS EC2 bloqueia esse tipo de solicitação por padrão? Em caso afirmativo, como é que se diferencia entre um AB e um pedido normal baseado no navegador?

    
por Mitul 01.02.2012 / 12:58

3 respostas

6

Does AWS EC2 load balancer block this type of request by default?

Não que eu saiba - você está, por acaso, executando o Mac OS X Lion ? Parece haver um comumente encontrado bug executando ab neste sistema operacional em particular release - de acordo com Corrigindo o bug do ApacheBench no Mac OS X Lion um patch está disponível (veja aqui para mais detalhes), embora seja provavelmente vale a pena e preferível verificar primeiro uma atualização oficial, na medida em que este patch (ou uma correção equivalente) tenha sido supostamente incorporado a partir da versão httpd-2.3.15-beta pelo menos (veja Atenção do Apachebench no OS X Lion ).

Obviamente, você pode verificar isso primeiro (e aplicá-lo como uma solução alternativa no caso) executando o mesmo teste de um sistema operacional (release) respectivamente diferente.

Boa sorte!

    
por 01.02.2012 / 15:36
3

Os ELBs da Amazon são ampliados quando a carga aumenta. Quando você tem 5 solicitações por segundo, você está em um balanceador de carga diferente do que as pessoas executando 1000 solicitações por segundo. O que acontece é que quando você está executando testes no balanceador de carga, ele passa de 5 a 1000 solicitações por segundo e o balanceador de carga não pode manipular a carga, portanto, ele negará as solicitações. Se você esperar de 10 a 15 minutos para que o balanceador de carga seja dimensionado enquanto o teste estiver em execução, você deve notar que todas as solicitações serão concluídas.

A Amazon pode atualizar manualmente seu balanceador de carga se você espera que isso cause problemas ao seu ambiente de produção. Eu tenho um loadbalancer / auto escalonamento grupo configurado na nuvem e nosso tráfego pode ir de algumas centenas por segundo para alguns milhares em questão de 1-2 horas nos fins de semana e nós realmente não ver esse comportamento durante a execução no ambiente de produção real, só vemos isso quando executamos testes com jmeter.

    
por 23.02.2012 / 00:00
2

Os balanceadores de carga geralmente são configurados para limitar o limite ou bloquear solicitações que não parecem ter vindo de "navegadores reais" como medida de segurança. Eu suspeito que possa ser o caso aqui; Tenho certeza que a Amazon tem alguns documentos.

Considere a captura de uma solicitação real do seu navegador (usando o Fiddler ou o Firebug) e adicione os cabeçalhos que você pode precisar com o parâmetro -H de ab. Você geralmente precisa de um "Host", "Accept" e "Accept-Encoding", por exemplo, talvez com uma string user-agent que pareça realista.

    
por 01.02.2012 / 15:59