Teste de carga vs. Teste de estresse
Antes de explicarmos como determinar o ponto de interrupção do aplicativo dentro da plataforma LoadView, devemos primeiro descrever as diferenças entre um teste de carga e um teste de estresse. Embora os termos sejam frequentemente usados de forma intercambiável, esses testes buscam encontrar resultados diferentes.
Um teste de carga é um tipo de teste não funcional usado para validar a saúde de um sistema enquanto sob um nível específico de solicitações simultâneas, também conhecido como carga. O objetivo de um teste de carga é provar que um sistema pode lidar com um nível de volume esperado ou aceitável com interrupção ou degradação mínima. Os fatores que são usados para criar essa linha de base de desempenho são velocidade de conexão, latência e tempos de download, entre outros. Geralmente, o teste de carga é realizado para ajudar a prever o desempenho do aplicativo dentro de limites realistas, ajudando a entender como o desempenho é afetado durante eventos de pico de carga. Empurrar o sistema além desses limites pode inadvertidamente fazer com que seu teste de carga se torne um teste de estresse.
Por outro lado, um teste de estresse é projetado para empurrar um sistema além do ponto de degradação, às vezes ao ponto de uma falha completa. Empurrar um sistema além do ponto de degradação ou falha permite que os engenheiros vejam como o sistema lida com a recuperação dessa falha e se mudanças na capacidade de hardware são ou não necessárias. Alguns dos fatores que normalmente são monitorados durante um teste de estresse são E/S de disco, largura de banda, uso da CPU, memória e várias métricas de desempenho de banco de dados.
Calculando a carga inicial
Determinar o ponto de ruptura de uma aplicação não é tipicamente simples como parece. Obviamente, se o servidor falhar, você definitivamente encontrou esse ponto, mas há outros fatores a considerar, como tempos de resposta. Hoje em dia, se uma página da Web ou aplicativo não responder em apenas alguns segundos, os usuários vão saltar. Longos tempos de resposta podem ser uma indicação de que sua aplicação está em baixa. Outra indicação de que algo está quebrado é que você começa a receber comentários dos usuários sobre problemas de página da Web ou seu suporte ou equipe de TI é notificado através de tickets de problemas.
Primeiro, considere o número de servidores web em uso e o número de núcleos de CPU disponíveis. Para este exemplo, assumiremos que estamos trabalhando com um servidor Web quad-core e usaremos um ponto de partida de 25 usuários simultâneos por núcleo de CPU, portanto, 100 usuários simultâneos . No entanto, recomenda-se começar com o número 50% menor do que um ponto de partida calculado, de modo que funciona para 50 usuários simultâneos. A partir deste ponto de partida, e dependendo dos requisitos de desempenho do aplicativo, você pode aumentar a carga para 5x ou 10x mais.
Escolhendo uma curva de carga: a plataforma LoadView
A plataforma LoadView oferece aos usuários a capacidade de escolher entre três opções diferentes de curva de carga.
- Curva de passo de carga. O tipo de teste permite comparar os tempos de resposta sob a carga operacional e sob a carga de tráfego esperada.
- Curva baseada em metas. Este teste é útil para quando você já tem um throughput pré-determinado (meta de transação), ou o número de visitantes que você espera em seu site durante um intervalo de tempo fixo e você deseja ter certeza de que o site atende aos requisitos.
- Curva ajustável dinâmica. Você pode usar esse tipo para descobrir os limites de desempenho do site ou para planejar sua capacidade de servidor alterando o tráfego do usuário manualmente durante o teste.
Para os propósitos deste exemplo, estamos procurando determinar o ponto de ruptura de um aplicativo, e não estamos trabalhando com um throughput ou meta de transação pré-determinada, então não estaremos considerando a opção de curva baseada em metas. Com o teste de curva ajustável dinâmica, você pode aumentar o tráfego até encontrar o ponto de ruptura ou, com a curva do degrau de carga, pode definir as taxas de aumento até encontrar esse ponto de ruptura.
Outro fator a ser levado em consideração é o tempo de execução da transação. Uma vez criado o dispositivo de teste de estresse, esse valor pode ser encontrado no relatório Desempenho após o processo de validação. Por exemplo, se o tempo de execução da transação for em torno de 30 segundos, você vai querer segurar a carga pelo dobro desse tempo, garantindo que a transação termine de ser executada, mesmo que o tempo de resposta aumente.
Encontrando o ponto de quebra da aplicação
Abaixo estão os resultados de um teste de estresse HTTP básico, utilizando uma curva de passo de carga, com uma carga inicial de 12 usuários por minuto.
Como você pode ver dentro das áreas destacadas em amarelo, há um aumento no tempo de resposta e número de erros à medida que o número de usuários é aumentado ao longo do tempo. Dependendo dos requisitos do aplicativo, em qualquer ponto em que ocorram erros, isso pode ser considerado o ponto de interrupção. Ou casos em que o tempo de resposta é de extrema importância, o ponto de ruptura do aplicativo pode ser onde o tempo de resposta excede o limite pré-definido.
Para obter mais informações sobre a execução de testes de estresse na plataforma LoadView, visite nossa Base de Conhecimento.