Teste de carga do Webserver

1

Existe alguma maneira de simular 1000 visitantes acessando nosso servidor? Passamos por uma completa reescrita e reestruturação do aplicativo. Tivemos um servidor Tomcat muito otimizado e estamos mudando para um servidor back-end Glassfish com um front-end Apache.

Já estamos na fase "beta", mas apenas alguns dos nossos usuários o usam ativamente. Temos 30-40k usuários em um único dia (talvez um máximo de 1000 a qualquer momento). Quando vamos a todo vapor com a nova configuração, não queremos que ela caia ou seja sobrecarregada em gargalos específicos.

Basicamente, há alguma ferramenta de teste que possamos usar para simular uma quantidade x de chamadas para URLs específicos?

    
por Tim Withers 22.06.2013 / 01:41

3 respostas

1

Só queria dar algumas dicas ao fazer seu teste de carga (testes adequados reduzirão as más notícias no futuro próximo).

O que eu experimentei é que - ao simular usuários de serviços web "reais", use ferramentas "reais" para isso. Tais como Selenium , Watir ou Estrutura do robô .

Por quê? Simplificando: Estas ferramentas irão simular navegadores reais com tudo incluído , não apenas algumas solicitações JMeter GET / POST para o seu servidor. Eu também sou um grande fã dos testes de pedidos do JMeter'ish, mas você precisa conhecer os limites. JMeter é ótimo, quando você já descobriu alguns gargalos. Como eu entendi, você ainda não tem certeza se existe algum.

O JMeter não é um navegador real, como dito na documentação do jmeter:

JMeter is not a browser

JMeter is not a browser. As far as web-services and remote services are concerned, JMeter looks like a browser (or rather, multiple browsers); however JMeter does not perform all the actions supported by browsers. In particular, JMeter does not execute the Javascript found in HTML pages. Nor does it render the HTML pages as a browser does (it's possible to view the response as HTML etc, but the timings are not included in any samples, and only one sample in one thread is ever viewed at a time). (source: http://jmeter.apache.org)

Só queria salientar que às vezes, após o teste de carga, você ainda pode descobrir que o sistema está se comportando de maneira diferente, mesmo que tenhamos feito nosso teste de carga correto. Às vezes as pessoas tendem a esquecer que o usuário com um navegador está fazendo toneladas de coisas sob o capô e que também é tráfego / carga do ponto de vista do servidor da Web.

Apenas dizendo.

    
por 22.06.2013 / 11:59
1

Comece com ab .

Há também o link .

Finalmente, dê uma olhada no jmeter .

    
por 22.06.2013 / 01:47
1

Se você já usa a AWS, essa é uma solução bem legal:

abelhas com metralhadoras

link

What we needed was a solution that allowed us to use multiple, topographically-close clients to all simultaneously assault our servers with traffic.

Bees with machines guns is a fabric script that I put together to aggressively load-test our sites. It provides methods to spin up an army of EC2 instances (the bees), assault a target server with a configurable amount of traffic, and then spin those instances back down.

    
por 22.06.2013 / 06:37