Transcript
Page 1: Introdução aos Testes de Desempenho

Introdução aos Testes de Desempenho César Fernandes Teixeira

[email protected]

Page 2: Introdução aos Testes de Desempenho

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

Page 3: Introdução aos Testes de Desempenho

PARTE 1: Introdução e Motivação

3

Page 4: Introdução aos Testes de Desempenho

Motivação

4

Servidor e-commerce

?!

Page 5: Introdução aos Testes de Desempenho

Motivação

5

Servidor e-commerce

?

?

?

Page 6: Introdução aos Testes de Desempenho

Motivação Sistema de Seleção Unificada (Sisu) - 2011

6

Page 7: Introdução aos Testes de Desempenho

Motivação Amazon - 2008

7

Fonte: http://idgnow.uol.com.br

Page 8: Introdução aos Testes de Desempenho

Introdução Os testes de desempenho permitem:

Saber o comportamento do sistema sob a carga esperada

Saber a carga máxima suportada pelo sistema

Planejar melhorias no ambiente para atender a demandas atuais e futuras

Não perder clientes por falhas no desempenho

8

Page 9: Introdução aos Testes de Desempenho

Introdução

9

Teste de carga• Testes realizados para verificar se o sistema suporta uma

determinada carga desejada

Teste de estresse• Testes realizados para determinar a capacidade máxima do

sistema

Teste de estabilidade• Testes realizados para verificar se o sistema degrada o

desempenho com o tempo

• Tipos de testes de desempenho

Fronteiras entre os testes podem não ser tão rígidas!

Page 10: Introdução aos Testes de Desempenho

Conceitos Principais

10

• Carga: volume de tráfego para um determinado sistema. Geralmente medida em transações, requisições e usuários.

• Requisição: requisição http realizada.

Page 11: Introdução aos Testes de Desempenho

Conceitos Principais

11

• Transação: operação completa no sistema. Por exemplo, buscar um produto.

• Sistema: todo o conjunto de servidores, rede entre servidores, softwares de terceiros e a aplicação.

• Utilização de um recurso: percentual, em uso, do total de recursos disponíveis.

Page 12: Introdução aos Testes de Desempenho

Conceitos Principais

12

• Tempo de resposta: Tempo desde o momento em que o usuário envia a requisição até o momento em que recebe a resposta completa. • Definição não é universal. • Na nomeclatura do Jmeter , é o elapsed time

Page 13: Introdução aos Testes de Desempenho

Conceitos Principais

13

• Profiling: instrumentação da aplicação para estudo dos métodos e seus tempos de execução.

• Vazão: taxa com que um sistema responde às requisições recebidas.

• Gargalo: tudo o que impede que o sistema apresente maior vazão.• Se a vazão for inferior à taxa com que as requisições

são enviadas ao sistema.

Page 14: Introdução aos Testes de Desempenho

PARTE 2: Metodologia de um Teste de

Desempenho

14

Page 15: Introdução aos Testes de Desempenho

Visão Geral

15

Sistema

?

?

?

Gerador de Carga

!

!

!

Page 16: Introdução aos Testes de Desempenho

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).

Page 17: Introdução aos Testes de Desempenho

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

Page 18: Introdução aos Testes de Desempenho

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?

Page 19: Introdução aos Testes de Desempenho

Processo de Teste

19

Page 20: Introdução aos Testes de Desempenho

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

Page 21: Introdução aos Testes de Desempenho

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.

Page 22: Introdução aos Testes de Desempenho

Monitoramento do sistema

22

• Ex: Utilização CPU

Page 23: Introdução aos Testes de Desempenho

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.

Page 24: Introdução aos Testes de Desempenho

Monitoramento do sistema

24

Ex: Relatório AWR (Oracle)

Page 25: Introdução aos Testes de Desempenho

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.

Page 26: Introdução aos Testes de Desempenho

Monitoramento do sistema

26

Ex: VisualVM (Java)

Page 27: Introdução aos Testes de Desempenho

Monitoramento do sistema

Há ferramentas que facilitam o monitoramento do sistema:• New Relic

• 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

Page 28: Introdução aos Testes de Desempenho

Modelagem

28

Entender o comportamento dos usuários que se deseja simular (Caracterização)

Criar os scripts para simular as transações de interesse

Page 29: Introdução aos Testes de Desempenho

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.

Page 30: Introdução aos Testes de Desempenho

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

Page 31: Introdução aos Testes de Desempenho

Modelagem: Caracterização

31

Exemplo log Apache

127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /index.html HTTP/1.0" 200 2326127.0.0.1 - frank [10/Oct/2000:13:56:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326192.168.0.1 - paulo [10/Oct/2000:14:06:36 -0700] "GET /checkout.php HTTP/1.0" 200 2326

Page 32: Introdução aos Testes de Desempenho

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, Microfocus SilkPerformer, etc.

Page 33: Introdução aos Testes de Desempenho

Modelagem: Scripts

33

Exemplo: JMeter

Page 34: Introdução aos Testes de Desempenho

Execução dos testes

34

• Gerador de carga • Dispara a carga definida nos scripts criados• Captura as métricas do cliente (i.e. tempo de

resposta, vazão, etc)

• Monitoramento do sistema encontra-se ativo

• A execução gera uma massa de dados que será analisada para a geração do relatório final

Page 35: Introdução aos Testes de Desempenho

Execução dos testes

35

Ferramentas• Jmeter

• Gratuita. Em alguns casos é necessário codificar parte do teste. Menor suporte a tecnologias, como RMI, ajax, silverlight, etc.

• Httperf• Gratuita. Somente para testar get a um conjunto de páginas.

• Microfocus SilkPerformer• Paga. Ainda é preciso codificar partes dos testes em alguns

momentos. Suporta diversas tecnologias mais recentes.• GOMEZ

• Paga. Geração de carga a partir da nuvem. A ferramenta é capaz de monitorar o sistema, inclusive, com profiling.

Page 36: Introdução aos Testes de Desempenho

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?

Page 37: Introdução aos Testes de Desempenho

PARTE 3: Cenário atual, erros comuns e

considerações finais

37

Page 38: Introdução aos Testes de Desempenho

Cenário Atual

38

• Geralmente os testes são feitos no ambiente de homologação

• Geralmente utiliza-se o Jmeter como gerador de carga

Page 39: Introdução aos Testes de Desempenho

Erros comuns

39

• Uso de ferramenta inadequada.

• Não monitorar todo o ambiente. • Desconfie do “Isso não é um problema”.

• Não conhecer o ambiente. • Conheça o ambiente a ser testado antes de planejar

os testes.

Page 40: Introdução aos Testes de Desempenho

Erros comuns

40

• Não caracterizar o sistema.

• Não conhecer os objetivos dos testes.

• Testar depois do sistema estar em produção.

• Não testar no ambiente de produção.

• Somente executar cada teste uma única vez.

Page 41: Introdução aos Testes de Desempenho

Considerações finais

41

• Os testes de desempenho são ferramentas poderosas para entender o comportamento de um sistema e prever sua capacidade máxima.

• A execução e planejamento podem ser complicados e devem ser feitos de maneira cuidadosa.


Top Related