Este documento introduz os testes de desempenho de sistemas, discutindo sua motivação, conceitos, metodologia e erros comuns. É apresentada uma visão geral do processo de teste, incluindo modelagem do tráfego, monitoramento, execução dos testes e geração de relatórios. O objetivo é entender o comportamento do sistema sob carga e identificar gargalos para melhorias.
2. César Fernandes Teixeira Analista de Desempenho – Base2 Tecnologia Mestre em Ciência da Computação (UFMG) Bacharel em Ciência da Computação (UFMG) Certificado CTFL pelo ISTQB Participou, durante a graduação e mestrado, de projetos de pesquisa de análise e modelagem de desempenho, planejamento de capacidade e projeto experimental em ciência da computação 2
22. Processo de Testes: Etapa 0 16 A etapa inicial é entender os objetivos dos testes É interessante saber como o sistema se comporta com a carga atual? É interessante saber qual a carga máxima que o sistema suporta? É interessante conhecer e apontar os gargalos? Entender qual o sistema a ser testado e a arquitetura do ambiente. Qual o limite de tempo de resposta aceitável? (6 segundos).
23. Processo de Testes: Etapa 0 17 Onde instalar os geradores de carga? Na mesma rede do sistema Na mesma rede onde os clientes estarão Meio de acesso
24. Processo de Testes: Etapa 0 18 Testar a aplicação do cliente? Testar o desempenho em browsers diferentes? Testar o desempenho na aplicação cliente (frontend)? Testar somente os servidores?
26. Configuração do Ambiente Configurar o sistema que será testado Configurar as máquinas que irão gerar a carga Configurar o monitoramento do ambiente O que deve ser monitorado? 20
27. Monitoramento do sistema 21 Métricas Sistema Operacional (Todas as máquinas) Utilização CPU, memória, Swap, disco, rede, etc. /proc, perfmon, vmstat, etc.
29. Monitoramento do sistema 23 Métricas Banco de Dados Tempo ocupado, tempo execução médio por query, locks, leituras físicas e lógicas, etc. Relatório AWR, etc.
31. Monitoramento do sistema 25 Profiling(Servidor de aplicação) Tempo de execução por método, tempo de execução em CPU por método, memória consumida por classe, etc. VisualVM, RedGate Ants, etc.
33. Monitoramento do sistema Há ferramentas que facilitam o monitoramento do sistema: NewRelic Integra profiling e monitoramento de métricas do sistema operacional. Cacti Monitoramento de métricas do SO. Up.time Monitoramento de métricas do SO. 27
34. Modelagem 28 Entender o comportamento dos usuários que se deseja simular (Caracterização) Criar os scripts para simular as transações de interesse
35. Modelagem: Caracterização 29 Quantos usuários simultâneos o sistema terá/tem na média? E no momento de pico? 100 usuários. Pico de 300. Qual a demanda estimada para o futuro? Espera-se um aumento de 50% nos acessos em 1 ano Quais as transações no sistema que são mais relevantes? Busca por produto e checkout. Qual a taxa de transações de cada categoria? 200 buscas por minuto, 20 checkouts por minuto.
36. Modelagem: Caracterização 30 Os dados são obtidos geralmente de duas maneiras Estudo dos logs dos servidores Relatórios gerenciais contendo essas informações
38. Modelagem: Scripts 32 Criar scripts para as operações levantadas na caracterização; Configurar a carga planejada para cada script; Geralmente os geradores de carga possuem a funcionalidade de criar scripts. Ex: Jmeter, MicrofocusSilkPerformer, etc.
45. Relatório Final 36 A partir da massa de dados gerados pela execução, busca responder: Sistema suporta a carga esperada? Qual a carga máxima que o sistema suportou? Ocorreram falhas ou queda no sistema com o aumento na carga? Quais os gargalos e o que pode ser feito para melhorar a vazão?