Pergunta

Eu tenho um serviço web que eu estou tentando teste de carga. Eu criei um programa que gera threads para vários usuários simulados a ligação ao serviço e fazer um pedido. Cada thread faz "um número" de pedidos antes que ele morra. Cada novo pedido é feito assim que ele está pronto - há pouco ou nenhum atraso entre a obtenção de uma resposta e fazer o próximo pedido. O serviço web em teste chama outro serviço web no mesmo servidor.

Este processo parece funcionar bem até 90 usuários simulados. Uma vez que eu tento 100 usuários simulados no entanto, os programas de travar depois de cerca de 6 total de pedidos processados. Eles não parecem estar fazendo nada. Os clientes simulados estão esperando hung para respostas e o serviço web não está recebendo as solicitações. É preciso uma reinicialização do servidor para recuperar.

O que está acontecendo aqui? Existe um limite para o número de conexões que posso fazer para o servidor? Devo tentar "ramp up" da carga (agora eu estou apenas demiti-los o mais rápido que puder)?

O servidor que estou usando nos Java Caps 5.1.3 servidor de aplicativos ea biblioteca que estou usando para fazer as solicitações é HttpUnit 1.6.2.


Acompanhamento Pergunta Qual é a vantagem da rampa acima do tempo? Por que não posso apenas empurrar toda a carga para o servidor no início do teste?

Foi útil?

Solução

Veja pode haver várias causas para que isso aconteça, você pode tentar a abordagem abaixo para descobrir a causa. Espero que ajuda:

1. Use Ramp-up

Use um digno ramp-up, dizem pelo menos 1User / 2 segundos ou algo semelhante. Se estiver usando resolve ramp-up seu problema, então é definitivamente uma questão Conde Connection.

2. Revisão do Código

Verifique completamente o código de carga de injecção de ter escrito, para loops unexited / thread em alguns casos.

Você também pode usar um utilitário de perfil, por exemplo, JENSOR para descobrir qual método é entrar em um impasse e fazendo com que o servidor para ser sem resposta.


Além disso, verificar esses parâmetros em seu web-servidor e ajustá-los e teste

  • MaxThreads
  • MaxProcesses
  • MaxSessionCount

de Acompanhamento Pergunta

O ramp-up simula um cenário da vida real, e ao mesmo tempo dá um espaço para respirar para o servidor Web. Ao fazer load-teste, o padrão deve ser o mais semelhante à vida real para obter previsões precisas e escaláveis.

Os parâmetros que desempenham a parte mais importante em fazer isso são:

  • Ramp-up
  • Think Time
  • Pacing b / w iterações
  • Transaction Mix
  • Não. de usuários simultâneos

Outras dicas

Resposta de Acompanhamento Pergunta

O ramp-up simula um cenário da vida real, e ao mesmo tempo dá um espaço para respirar para o servidor Web. Ao fazer load-teste, o padrão deve ser o mais semelhante à vida real para obter previsões precisas e escaláveis.

Os parâmetros que desempenham a parte mais importante em fazer isso são:

  • Ramp-up
  • Think Time
  • Pacing b / w iterações
  • Transaction Mix
  • Não. de usuários simultâneos

Eu acho que você deve tentar usar JMeter para teste de carga. Ele tem todo o material ramp-up. Esta apresentação PPT compara os dois, assim você pode ver que você se encaixa melhor.

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