O que é um gerador de carga?
Tabela de conteúdos
Novato - This article is part of a series.
O que é um gerador de carga? #
O gerador de carga é um dispositivo dedicado a todos os seus recursos para realizar tarefas de simulação para usuários virtuais. Este dispositivo deveria ser, preferencialmente, uma máquina de servidor, e em caso específico do JMeter, recomendamos que apenas contenha o sistema operacional (Alpine ou Ubuntu), Java 1.8+, e JMeter.
Por que o dispositivo deve ser dedicado? #
A principal razão pelo qual o dispositivo não deveria compartilhar recursos com outros processos é porque são realizadas tarefas de medida exata de tempo extremamente precisas, e qualquer processo relacionado a testes poderia negativamente afetar as métricas e potencialmente ruir a medida. Basicamente, é para prevenir que qualquer agente externo nos danifique nossos resultados.
Deve ser um servidor físico ou virtual? #
Atualmente, é raro ter servidores físicos porque é mais econômico ter divisões de hardware grandes e então criar múltiplos servidores virtuais. Apesar das vantagens e desvantagens desses dois tipos, essa questão não é tão significativa quanto se o servidor seja 100% dedicado à geração de carga.
O que você deve fazer se não for dedicado? #
Se por algum motivo você não conseguir obter um servidor dedicado para teste, você deve ter a necessidade de saber como desabilitar aplicativos e/ou serviços antes de executar o teste e reabilitá-los uma vez que ele conclui. Como prática boa, recomendamos verificar os níveis do CPU, Memória e Bandeia após desabilitar as processos e continuar fazendo isso até que o teste termine.
Outra opção seria considerar ter seus geradores de carga em nuvem. Com o crescimento do uso de IaaS na nuvem, como AWS, Azure e Google, esta opção é ideal para manter os custos baixos pagando somente por um imã pré-criado JMeter para execuções e gerar a máquina quando necessário para executar testes.
Qual as características de um gerador de carga? #
Infelizmente não há regras para calcular os recursos necessários para simular uma certa quantidade de usuários. Isso ocorre porque envolve múltiplas variáveis. No entanto, na Flood.io realizamos várias medidas para estabelecer o m5.xlarge instância entre 500 e 1.000 threads virtuais ou usuários. A instância é uma instância geral de propósito, tem 4 CPUs, 16 GB de RAM e uma interface de rede de 10 Gbps.
Exemplos onde não é possível simular essa quantidade de usuários virtuais:
- O teste envolve Audio ou Streaming de Vídeo, que geralmente exausta a banda antes de chegar a 500 threads virtuais.
- O teste envolve eCommerce, que também consome mais banda do que o usual por causa das múltiplas imagens.
- Se o gestor de cache estiver habilitado e você salvar muitos elementos, provavelmente exaustará a memória do gerador de carga antes da exaustão da banda.
- A lógica do script é extremamente complexa ou tem muitos elementos programáticos, o que aumenta consumo de CPU.
- As conexões são listadas, estas consumem memória e CPU.
- Basicamente, qualquer cenário de teste com mau práticas onde qualquer um dos recursos processuais, de armazenamento ou de comunicação do gerador de carga exaustam.
Pode meu computador ser um gerador de carga? #
A resposta absoluta é NÃO, como doloroso isso possa soar. Isso provavelmente é uma das perguntas mais frequentes que recebo, e eu geralmente tenho que fazer com que eles sejam conscientes dos muitos motivos por trás disso não ser uma boa prática, mas acredito que já forneço várias exemplos que apoiam essa resposta.
Seu equipamento de computador não é totalmente dedicado à tarefa de simulação; está executando múltiplos processos e/ou tarefas que podem afetar suas métricas. Eles podem fornecer medidas irregulares para um máximo de 20 ou 50 usuários virtuais; no entanto, esses resultados não devem ser parte da sua base de cálculo para as variações do joelho.
Conclusão #
O gerador de carga é o fundamento da testagem de carga e/ou estresse. Portanto, é necessário fornecer cuidado adequado para obter resultados confiáveis. Lembre-se, nós dependemos dessas informações para a fase de análise, e é essencial garantir que os resultados sejam confiáveis.