Pergunta

Tenho algumas perguntas básicas sobre a compreensão dos fundamentos dos testes de desempenho. Sei que, em várias circunstâncias, podemos querer fazer - testes de estresse - testes de resistência etc. Mas meu principal objetivo aqui é garantir que o tempo de resposta seja decente da aplicação sob um conjunto de carga que é para uma extremidade mais alta ou menos acima da média carregar.

Minhas perguntas são as seguintes:

  1. Quando você começa a planejar o tempo de resposta esperado do aplicativo; o que você considera. Se esse é o primeiro passo. Quero dizer, agora tenho um aplicativo da web. Eu apenas pego uma figura do ar e digo "eu esperaria que a aplicação levasse 3 segundos para responder a cada solicitação". E então descobre o que minha aplicação está faltando para obter esse tempo de resposta?

  2. Ou é o contrário, e você inicia o teste de desempenho com um determinado conjunto de hardware e digamos, vamos ver que tempo de resposta eu recebo agora e depois veja os resultados e diga: bem, são 8 segundos agora, gostaria que eu gostaria São 3 segundos no Max, então vamos ver como podemos otimizá -lo como 3 segundos? Mas novamente está 3 segundos fora do ar? Tenho certeza de que a ampliação de máquinas não terá tempo de resposta. Ele aumentará o tempo de resposta apenas quando uma única máquina/servidor estiver em carga e você inicia o cluster?

  3. Agora, para um único usuário, tenho tempo de resposta como 3 segundos, mas à medida que a carga aumenta, ela diminui exponencialmente; Então, onde eu desenho a linha entre "Preciso otimizar mais o código" (que tem seu limite superior) e "Preciso ampliar meus servidores" (que também tem um limite)

  4. Quais são as melhores ferramentas gratuitas para fazer desempenho e teste de carga? Eu usei um pouco o JMeter. Mas há mais alguma coisa, isso é bom e de código aberto?

  5. Se eu tiver que otimizar o código, começo a perfil dos fluxos específicos que levaram muito tempo a responder às solicitações?

Basicamente, eu gostaria de ver como se passa de ponta a ponta de teste de desempenho para sua aplicação. Quaisquer links ou artigos seriam muito úteis.

Obrigado.

Foi útil?

Solução

o Conselho de Testes de Desempenho é sua porta de entrada para trocar livremente experiências, conhecimentos e práticas de teste de desempenho.

Leia também Padrões e práticas da Microsoft para teste de desempenho. Este guia mostra uma abordagem de ponta a ponta para implementar testes de desempenho.

Fénix mencionou as ferramentas de código aberto.

Outras dicas

Esse link e isto Mostre um exemplo e método de ajuste de desempenho um aplicativo quando o aplicativo não tiver nenhum "gargalo" óbvio. Funciona mais intuitivamente em threads individuais. Não tenho experiência em usá -lo em aplicativos da Web, embora outras pessoas o façam. Concordo que o perfil não é fácil, mas sempre confiei nessa técnica e acho que é muito fácil / eficaz.

Primeiro de tudo, projete seu aplicativo corretamente.

Use um perfil, veja onde estão os gargalos em seu aplicativo e retire -os, se possível. Meça o desempenho antes de melhorá -lo.

Vou tentar fornecer um guia básico passo a passo, que pode ser usado para implementar testes de desempenho em seu projeto.

1 - Antes de começar a testar Você deve saber a quantidade de memória física e a quantidade de memória alocada para a JVM, ou qualquer outra coisa. O tamanho do banco de dados coleta o máximo possível de métricas para o seu ambiente atual. Conheça seu ambiente

2 - O próximo passo seria identificar o tamanho comum da produção de banco de dados e o crescimento anual esperado. Você deseja testar como seu aplicativo se comportará depois do ano, dois, cinco etc.,

3 - Automatize a configuração do ambiente, isso ajudará muito no futuro para testes de regressão e validação de correção de defeitos. Então você precisa ter despejos de banco de dados para seus testes. Com o volume atual (basal), um ano, cinco anos.

4 - Depois de terminar, se reunir informações básicas - Pense em monitorar seus servidores sob carga, talvez você já tenha alguma solução de monitoramento, como http://newrelic.com/ Isso ajudará você a identificar a causa da degradação do desempenho (CPU/MEM/quantidade de threads etc.,) Algumas ferramentas de teste de desempenho foram incorporadas em sistemas de monitoramento.

Com isso, você está pronto para se mover com ferramentas e seleção de carga, já há materiais de como fazer isso para pular a parte da seleção da carga de trabalho.

5 - Selecione ferramenta Eu acho que Jmeter + http://blazemeter.com/ É o que você precisa neste momento, ambos têm muitos artigos e materiais educacionais bons, para sua gravação de scripts que eu recomendaria usar a extensão Chrom Blazemeters em vez da solução JMeters embutida. Se você ainda acha que não tem conhecimento sobre como as coisas são feitas no jmeter, recomendo obter este livro - Teste de desempenho com JMeter 2.9 por Bayo Erinle

6 - Analise os resultados, revise o plano de teste e faça ações correspondentes.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top