introdução aos testes de desempenho

Post on 25-May-2015

3.535 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

A apresentação aborda motivação para a realização dessa modalidade de testes, bem como os conceitos principais que precisam ser compreendidos. Também apresenta uma metodologia básica de um teste de desempenho, as principais métricas que necessitam ser capturadas e analisadas e as ferramentas atualmente disponíveis no mercado. Por último são abordados ainda os erros mais comuns ao se planejar e executar essa classe de testes.

TRANSCRIPT

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

cesar.fernandes@base2.com.br

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

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

3

Motivação

4

Servidor e-commerce

?!

Motivação

5

Servidor e-commerce

?

?

?

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

6

Motivação Amazon - 2008

7

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

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

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!

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.

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.

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

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.

PARTE 2: Metodologia de um Teste de

Desempenho

14

Visão Geral

15

Sistema

?

?

?

Gerador de Carga

!

!

!

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

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

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?

Processo de Teste

19

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

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.

Monitoramento do sistema

22

• Ex: Utilização CPU

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.

Monitoramento do sistema

24

Ex: Relatório AWR (Oracle)

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.

Monitoramento do sistema

26

Ex: VisualVM (Java)

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

Modelagem

28

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

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

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.

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

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

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.

Modelagem: Scripts

33

Exemplo: JMeter

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

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.

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?

PARTE 3: Cenário atual, erros comuns e

considerações finais

37

Cenário Atual

38

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

• Geralmente utiliza-se o Jmeter como gerador de carga

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.

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.

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