Introduçãoaos Testes de Desempenho<br />César Fernandes Teixeira<br />cesar.fernandes@base2.com.br<br />
César Fernandes Teixeira<br />Analista de Desempenho – Base2 Tecnologia<br />Mestre em Ciência da Computação (UFMG)<br />B...
PARTE 1: Introdução e Motivação<br />3<br />
Motivação<br />4<br />?<br />!<br />Servidor e-commerce<br />
Motivação<br />5<br />?<br />?<br />?<br />Servidor e-commerce<br />
Motivação<br />Sistema de Seleção Unificada (Sisu) - 2011<br />6<br />
Motivação<br />Amazon - 2008<br />7<br />Fonte: http://idgnow.uol.com.br<br />
Introdução<br />Os testes de desempenho permitem:<br /><ul><li>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</li></ul>8<br />
Introdução<br />9<br /><ul><li>Tipos de testes de desempenho</li></li></ul><li>Conceitos Principais<br />10<br /><ul><li>C...
Requisição: requisição http realizada.</li></li></ul><li>Conceitos Principais<br />11<br /><ul><li>Transação: operação com...
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.</li></li></ul><li>Conceitos Principais<br ...
Definição não é universal.
Na nomeclatura do Jmeter , é o elapsed time</li></li></ul><li>Conceitos Principais<br />13<br /><ul><li>Profiling: instrum...
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.</li></li></ul><li>PARTE 2: Metodologia de u...
Visão Geral<br />15<br />?<br />!<br />?<br />!<br />!<br />?<br />Gerador de Carga<br />Sistema<br />
Processo de Testes: Etapa 0<br />16<br />A etapa inicial é entender os objetivos dos testes<br />É interessante saber como...
Processo de Testes: Etapa 0<br />17<br />Onde instalar os geradores de carga?<br />Na mesma rede do sistema<br />Na mesma ...
Processo de Testes: Etapa 0<br />18<br />Testar a aplicação do cliente?<br />Testar o desempenho em browsers diferentes?<b...
Processo de Teste<br />19<br />
Configuração do Ambiente<br />Configurar o sistema que será testado<br />Configurar as máquinas que irão gerar a carga<br ...
Monitoramento do sistema<br />21<br />Métricas Sistema Operacional (Todas as máquinas)<br />Utilização CPU, memória, Swap,...
Monitoramento do sistema<br />22<br />Ex: Utilização CPU<br />
Monitoramento do sistema<br />23<br />Métricas Banco de Dados<br />Tempo ocupado, tempo execução médio por query, locks, l...
Monitoramento do sistema<br />24<br />Ex: Relatório AWR (Oracle)<br />
Monitoramento do sistema<br />25<br />Profiling(Servidor de aplicação)<br />Tempo de execução por método, tempo de execuçã...
Monitoramento do sistema<br />26<br />Ex: VisualVM (Java)<br />
Monitoramento do sistema<br />Há ferramentas que facilitam o monitoramento do sistema:<br />NewRelic<br />Integra profilin...
Modelagem<br />28<br />Entender o comportamento dos usuários que se deseja simular (Caracterização)<br />Criar os scripts ...
Modelagem: Caracterização<br />29<br />Quantos usuários simultâneos o sistema terá/tem na média? E no momento de pico? 100...
Modelagem: Caracterização<br />30<br />Os dados são obtidos geralmente de duas maneiras<br />Estudo dos logs dos servidore...
Modelagem: Caracterização<br />31<br />Exemplo log Apache<br />127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /index....
Modelagem: Scripts<br />32<br />Criar scripts para as operações levantadas na caracterização;<br />Configurar a carga plan...
Modelagem: Scripts<br />33<br />Exemplo: JMeter<br />
Execução dos testes<br />34<br /><ul><li>Gerador de carga
Dispara a carga definida nos scripts criados
Upcoming SlideShare
Loading in …5
×

Introdução aos Testes de Desempenho

4,474 views

Published on

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.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Introdução aos Testes de Desempenho

  1. 1. Introduçãoaos Testes de Desempenho<br />César Fernandes Teixeira<br />cesar.fernandes@base2.com.br<br />
  2. 2. César Fernandes Teixeira<br />Analista de Desempenho – Base2 Tecnologia<br />Mestre em Ciência da Computação (UFMG)<br />Bacharel em Ciência da Computação (UFMG)<br />Certificado CTFL pelo ISTQB<br />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<br />2<br />
  3. 3. PARTE 1: Introdução e Motivação<br />3<br />
  4. 4. Motivação<br />4<br />?<br />!<br />Servidor e-commerce<br />
  5. 5. Motivação<br />5<br />?<br />?<br />?<br />Servidor e-commerce<br />
  6. 6. Motivação<br />Sistema de Seleção Unificada (Sisu) - 2011<br />6<br />
  7. 7. Motivação<br />Amazon - 2008<br />7<br />Fonte: http://idgnow.uol.com.br<br />
  8. 8. Introdução<br />Os testes de desempenho permitem:<br /><ul><li>Saber o comportamento do sistema sob a carga esperada
  9. 9. Saber a carga máxima suportada pelo sistema
  10. 10. Planejar melhorias no ambiente para atender a demandas atuais e futuras
  11. 11. Não perder clientes por falhas no desempenho</li></ul>8<br />
  12. 12. Introdução<br />9<br /><ul><li>Tipos de testes de desempenho</li></li></ul><li>Conceitos Principais<br />10<br /><ul><li>Carga: volume de tráfego para um determinado sistema. Geralmente medida em transações, requisições e usuários.
  13. 13. Requisição: requisição http realizada.</li></li></ul><li>Conceitos Principais<br />11<br /><ul><li>Transação: operação completa no sistema. Por exemplo, buscar um produto.
  14. 14. Sistema: todo o conjunto de servidores, rede entre servidores, softwares de terceiros e a aplicação.
  15. 15. Utilização de um recurso: percentual, em uso, do total de recursos disponíveis.</li></li></ul><li>Conceitos Principais<br />12<br /><ul><li>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.
  16. 16. Definição não é universal.
  17. 17. Na nomeclatura do Jmeter , é o elapsed time</li></li></ul><li>Conceitos Principais<br />13<br /><ul><li>Profiling: instrumentação da aplicação para estudo dos métodos e seus tempos de execução.
  18. 18. Vazão: taxa com que um sistema responde às requisições recebidas.
  19. 19. Gargalo: tudo o que impede que o sistema apresente maior vazão.
  20. 20. Se a vazão for inferior à taxa com que as requisições são enviadas ao sistema.</li></li></ul><li>PARTE 2: Metodologia de um Teste de Desempenho<br />14<br />
  21. 21. Visão Geral<br />15<br />?<br />!<br />?<br />!<br />!<br />?<br />Gerador de Carga<br />Sistema<br />
  22. 22. Processo de Testes: Etapa 0<br />16<br />A etapa inicial é entender os objetivos dos testes<br />É interessante saber como o sistema se comporta com a carga atual?<br />É interessante saber qual a carga máxima que o sistema suporta?<br />É interessante conhecer e apontar os gargalos?<br />Entender qual o sistema a ser testado e a arquitetura do ambiente.<br />Qual o limite de tempo de resposta aceitável? (6 segundos).<br />
  23. 23. Processo de Testes: Etapa 0<br />17<br />Onde instalar os geradores de carga?<br />Na mesma rede do sistema<br />Na mesma rede onde os clientes estarão<br />Meio de acesso<br />
  24. 24. Processo de Testes: Etapa 0<br />18<br />Testar a aplicação do cliente?<br />Testar o desempenho em browsers diferentes?<br />Testar o desempenho na aplicação cliente (frontend)?<br />Testar somente os servidores?<br />
  25. 25. Processo de Teste<br />19<br />
  26. 26. Configuração do Ambiente<br />Configurar o sistema que será testado<br />Configurar as máquinas que irão gerar a carga<br />Configurar o monitoramento do ambiente<br />O que deve ser monitorado?<br />20<br />
  27. 27. Monitoramento do sistema<br />21<br />Métricas Sistema Operacional (Todas as máquinas)<br />Utilização CPU, memória, Swap, disco, rede, etc.<br />/proc, perfmon, vmstat, etc.<br />
  28. 28. Monitoramento do sistema<br />22<br />Ex: Utilização CPU<br />
  29. 29. Monitoramento do sistema<br />23<br />Métricas Banco de Dados<br />Tempo ocupado, tempo execução médio por query, locks, leituras físicas e lógicas, etc.<br />Relatório AWR, etc.<br />
  30. 30. Monitoramento do sistema<br />24<br />Ex: Relatório AWR (Oracle)<br />
  31. 31. Monitoramento do sistema<br />25<br />Profiling(Servidor de aplicação)<br />Tempo de execução por método, tempo de execução em CPU por método, memória consumida por classe, etc.<br />VisualVM, RedGate Ants, etc.<br />
  32. 32. Monitoramento do sistema<br />26<br />Ex: VisualVM (Java)<br />
  33. 33. Monitoramento do sistema<br />Há ferramentas que facilitam o monitoramento do sistema:<br />NewRelic<br />Integra profiling e monitoramento de métricas do sistema operacional.<br />Cacti<br />Monitoramento de métricas do SO.<br />Up.time<br />Monitoramento de métricas do SO.<br />27<br />
  34. 34. Modelagem<br />28<br />Entender o comportamento dos usuários que se deseja simular (Caracterização)<br />Criar os scripts para simular as transações de interesse<br />
  35. 35. Modelagem: Caracterização<br />29<br />Quantos usuários simultâneos o sistema terá/tem na média? E no momento de pico? 100 usuários. Pico de 300.<br />Qual a demanda estimada para o futuro? Espera-se um aumento de 50% nos acessos em 1 ano<br />Quais as transações no sistema que são mais relevantes? Busca por produto e checkout.<br />Qual a taxa de transações de cada categoria? 200 buscas por minuto, 20 checkouts por minuto.<br />
  36. 36. Modelagem: Caracterização<br />30<br />Os dados são obtidos geralmente de duas maneiras<br />Estudo dos logs dos servidores<br />Relatórios gerenciais contendo essas informações<br />
  37. 37. Modelagem: Caracterização<br />31<br />Exemplo log Apache<br />127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /index.html HTTP/1.0" 200 2326<br />127.0.0.1 - frank [10/Oct/2000:13:56:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326<br />192.168.0.1 - paulo [10/Oct/2000:14:06:36 -0700] "GET /checkout.php HTTP/1.0" 200 2326<br />
  38. 38. Modelagem: Scripts<br />32<br />Criar scripts para as operações levantadas na caracterização;<br />Configurar a carga planejada para cada script;<br />Geralmente os geradores de carga possuem a funcionalidade de criar scripts. Ex: Jmeter, MicrofocusSilkPerformer, etc.<br />
  39. 39. Modelagem: Scripts<br />33<br />Exemplo: JMeter<br />
  40. 40. Execução dos testes<br />34<br /><ul><li>Gerador de carga
  41. 41. Dispara a carga definida nos scripts criados
  42. 42. Captura as métricas do cliente (i.e. tempo de resposta, vazão, etc)
  43. 43. Monitoramento do sistema encontra-se ativo
  44. 44. A execução gera uma massa de dados que será analisada para a geração do relatório final</li></li></ul><li>Execução dos testes<br />35<br />Ferramentas<br />Jmeter<br />Gratuita. Em alguns casos é necessário codificar parte do teste. Menor suporte a tecnologias, como RMI, ajax, silverlight, etc.<br />Httperf<br />Gratuita. Somente para testar get a um conjunto de páginas.<br />MicrofocusSilkPerformer<br />Paga. Ainda é preciso codificar partes dos testes em alguns momentos. Suporta diversas tecnologias mais recentes.<br />GOMEZ<br />Paga. Geração de carga a partir da nuvem. A ferramenta é capaz de monitorar o sistema, inclusive, com profiling.<br />
  45. 45. Relatório Final<br />36<br />A partir da massa de dados gerados pela execução, busca responder:<br />Sistema suporta a carga esperada?<br />Qual a carga máxima que o sistema suportou?<br />Ocorreram falhas ou queda no sistema com o aumento na carga?<br />Quais os gargalos e o que pode ser feito para melhorar a vazão?<br />
  46. 46. PARTE 3: Cenário atual, erros comuns e considerações finais<br />37<br />
  47. 47. Cenário Atual<br />38<br /><ul><li>Geralmente os testes são feitos no ambiente de homologação
  48. 48. Geralmente utiliza-se o Jmeter como gerador de carga</li></li></ul><li>Erros comuns<br />39<br /><ul><li>Uso de ferramenta inadequada.
  49. 49. Não monitorar todo o ambiente.
  50. 50. Desconfie do “Isso não é um problema”.
  51. 51. Não conhecer o ambiente.
  52. 52. Conheça o ambiente a ser testado antes de planejar os testes.</li></li></ul><li>Erros comuns<br />40<br /><ul><li>Não caracterizar o sistema.
  53. 53. Não conhecer os objetivos dos testes.
  54. 54. Testar depois do sistema estar em produção.
  55. 55. Não testar no ambiente de produção.
  56. 56. Somente executar cada teste uma única vez.</li></li></ul><li>Considerações finais<br />41<br /><ul><li>Os testes de desempenho são ferramentas poderosas para entender o comportamento de um sistema e prever sua capacidade máxima.
  57. 57. A execução e planejamento podem ser complicados e devem ser feitos de maneira cuidadosa.</li>

×