32
Xdebug Xdebug Aluno: Diego Rangel da Aluno: Diego Rangel da Silva Silva Profiler de Profiler de Sistema PHP Sistema PHP

Xdebug Aluno: Diego Rangel da Silva Profiler de Sistema PHP

Embed Size (px)

Citation preview

Page 1: Xdebug Aluno: Diego Rangel da Silva Profiler de Sistema PHP

XdebugXdebug

Aluno: Diego Rangel da SilvaAluno: Diego Rangel da Silva

Profiler de Profiler de Sistema PHPSistema PHP

Page 2: Xdebug Aluno: Diego Rangel da Silva Profiler de Sistema PHP

Análise Estática e Análise Estática e Análise Dinâmica Análise Dinâmica

(Performance)(Performance) Análise Estática: Análise Estática: não envolve a execuçãonão envolve a execução

propriamente dita do produto. Pode e deve propriamente dita do produto. Pode e deve ser aplicada em qualquer artefato ser aplicada em qualquer artefato intermediário. intermediário.

Ex.: Revisões técnicas, inspeção de código.Ex.: Revisões técnicas, inspeção de código.

Análise Dinâmica: Análise Dinâmica: envolve a execuçãoenvolve a execução do do produto. produto.

Ex.: Testes de Software, Simulação.Ex.: Testes de Software, Simulação.

Fonte: (Maldonado e Fabbri em (Rocha et al., 2001)).Fonte: (Maldonado e Fabbri em (Rocha et al., 2001)).

Page 3: Xdebug Aluno: Diego Rangel da Silva Profiler de Sistema PHP

Porque Fazer Análise de Porque Fazer Análise de Performance(Desempenho)Performance(Desempenho)

??

A análise de performance é um teste feito A análise de performance é um teste feito no sistema para determinar e validar a sua no sistema para determinar e validar a sua velocidade, escalabilidade, e estabilidade sobre velocidade, escalabilidade, e estabilidade sobre execução.execução. (Scott Barber, 2007) (Scott Barber, 2007)

O que é a análise de performance?O que é a análise de performance?

Velocidade:Velocidade: a aplicação responde rápido? Tem a aplicação responde rápido? Tem alguma limitação?alguma limitação?

Escalabilidade:Escalabilidade: quantos usuários suporta? quantos usuários suporta? Quantos dados eu consigo armazenar?

Estabilidade:Estabilidade: vai falhar sobre alta carga? Se ocorrer vai falhar sobre alta carga? Se ocorrer um Downtime?um Downtime?

Page 4: Xdebug Aluno: Diego Rangel da Silva Profiler de Sistema PHP

Categorias de Teste de Categorias de Teste de PerformancePerformance

Teste de PerformanceTeste de Performance

Teste de CargaTeste de Carga

Teste de StressTeste de Stress

Page 5: Xdebug Aluno: Diego Rangel da Silva Profiler de Sistema PHP

FACCHINI, G. . Introdução ao Teste de Performance. 2009. (Conferência ou palestra).

Processo de Análise de Processo de Análise de DesempenhoDesempenho

Page 6: Xdebug Aluno: Diego Rangel da Silva Profiler de Sistema PHP

FACCHINI, G. . Introdução ao Teste de Performance. 2009. (Conferência ou palestra).

Divisão do Processo em Divisão do Processo em SubcamadasSubcamadas

Page 7: Xdebug Aluno: Diego Rangel da Silva Profiler de Sistema PHP

PagasPagas HP – LoadrunnerHP – Loadrunner IBM – Rational Performance TesterIBM – Rational Performance Tester Borland – SilkPerformerBorland – SilkPerformer

GratuitasGratuitas JMeterJMeter OpenSTAOpenSTA WebLoadWebLoad XdebugXdebug

FerramentasFerramentas

Page 8: Xdebug Aluno: Diego Rangel da Silva Profiler de Sistema PHP

Profiling com XdebugProfiling com Xdebug O Xdebug é um plugin e sua instalação e O Xdebug é um plugin e sua instalação e

configuração é feita através de uma IDE compatível configuração é feita através de uma IDE compatível com a linguagem PHP. Exemplo: NetBeans, com a linguagem PHP. Exemplo: NetBeans, Eclipse, Zend Studio,etc.Eclipse, Zend Studio,etc.

Com ele você pode gerar arquivos cachegrind que Com ele você pode gerar arquivos cachegrind que contem informações da análise de desempenho.contem informações da análise de desempenho.

Você precisa de uma ferramenta para ler estes Você precisa de uma ferramenta para ler estes arquivos.arquivos.

Exemplos: WinCacheGrind, KCacheGrind, webgrind.Exemplos: WinCacheGrind, KCacheGrind, webgrind.

Esta ferramentas permitem você analisar o script Esta ferramentas permitem você analisar o script em execução.em execução.

Page 9: Xdebug Aluno: Diego Rangel da Silva Profiler de Sistema PHP

WinCacheGrind(WindowsWinCacheGrind(Windows))

Page 10: Xdebug Aluno: Diego Rangel da Silva Profiler de Sistema PHP

KCacheGrind KCacheGrind Screenshot(Linux)Screenshot(Linux)

Page 11: Xdebug Aluno: Diego Rangel da Silva Profiler de Sistema PHP

Tempos de respostaTempos de resposta

Capacidade de crescimentoCapacidade de crescimento

Comparação entre Comparação entre hardware/software/configuraçãohardware/software/configuração

Relatórios indicam pontos de melhoriaRelatórios indicam pontos de melhoria

Resultados do TesteResultados do Teste

Page 12: Xdebug Aluno: Diego Rangel da Silva Profiler de Sistema PHP

Qual hardware necessário?Qual hardware necessário? Qual a configuração necessária?Qual a configuração necessária? Qual sistema operacional?Qual sistema operacional? Qual banco?Qual banco? Podemos crescer? Quanto?Podemos crescer? Quanto? Qual o tempo de resposta?Qual o tempo de resposta? Quais são nossos gargalos?Quais são nossos gargalos?

Perguntas RespondidasPerguntas Respondidas

Page 13: Xdebug Aluno: Diego Rangel da Silva Profiler de Sistema PHP

1º Artigo1º Artigo Autores: Yu. V. Shabatura, Cand. Sc. (Eng); I. Autores: Yu. V. Shabatura, Cand. Sc. (Eng); I.

V. Shtelmakh; M. Yu. ShabaturaV. Shtelmakh; M. Yu. Shabatura

Título: New Method For Improvement Título: New Method For Improvement Software Performance In Computing Software Performance In Computing Systems By Automatical Searching of Systems By Automatical Searching of «BOTTLENECKS»«BOTTLENECKS»

Periódico: Informational Technologies And Periódico: Informational Technologies And Computer EnginneringComputer Enginnering

Ano: 2009Ano: 2009

Page 14: Xdebug Aluno: Diego Rangel da Silva Profiler de Sistema PHP

IntroduçãoIntrodução

O objetivo do autor é otimizar o tempo O objetivo do autor é otimizar o tempo de execução de um sistema resolvendo de execução de um sistema resolvendo os problemas de busca de gargalo de os problemas de busca de gargalo de forma mais eficiente.forma mais eficiente.

Na Engenharia existe um fenômeno Na Engenharia existe um fenômeno conhecido como gargalo, que limita a conhecido como gargalo, que limita a capacidade de produtividade de um capacidade de produtividade de um sistema devido a presença de alguns sistema devido a presença de alguns elementos.elementos.

Page 15: Xdebug Aluno: Diego Rangel da Silva Profiler de Sistema PHP

Gráfico de chamadasGráfico de chamadas

Page 16: Xdebug Aluno: Diego Rangel da Silva Profiler de Sistema PHP

Esquema de SistemaEsquema de Sistema

Page 17: Xdebug Aluno: Diego Rangel da Silva Profiler de Sistema PHP

Análise de ResultadosAnálise de Resultados Para realizar a otimização da busca por Para realizar a otimização da busca por

gargalos. Os resultados encontrados na gargalos. Os resultados encontrados na análise são filtrados.análise são filtrados.

São retirados as chamadas a função que atingiram um tempo menor que o limite determinado abaixo:

Page 18: Xdebug Aluno: Diego Rangel da Silva Profiler de Sistema PHP

ResultadoResultado

Page 19: Xdebug Aluno: Diego Rangel da Silva Profiler de Sistema PHP

Conclusão do ArtigoConclusão do Artigo

A estruturação e suporte a algoritmo para A estruturação e suporte a algoritmo para construção de sistema automatizado teve construção de sistema automatizado teve como objetivo otimizar a eficiência de como objetivo otimizar a eficiência de sistemas de computação através da sistemas de computação através da redução da influência de botttlenecks.redução da influência de botttlenecks.

Como resultado do estudo experimental, o Como resultado do estudo experimental, o sistema mostrou a habilidade de visualizar sistema mostrou a habilidade de visualizar o processo de execução do programa e o processo de execução do programa e otimizar a sua performance.otimizar a sua performance.

Page 20: Xdebug Aluno: Diego Rangel da Silva Profiler de Sistema PHP

Teste de Desempenho é importante para:Teste de Desempenho é importante para: Identificar utilização do sistemaIdentificar utilização do sistema Verificar tempos de respostaVerificar tempos de resposta Aperfeiçoar o ambiente/programaAperfeiçoar o ambiente/programa

Existem diversas ferramentas realizar Existem diversas ferramentas realizar esta análise, uma delas é a Xdebug.esta análise, uma delas é a Xdebug.

A experiência do usuário (cliente) está A experiência do usuário (cliente) está intimamente ligada com o teste de intimamente ligada com o teste de desempenhodesempenho

ConclusãoConclusão

Page 21: Xdebug Aluno: Diego Rangel da Silva Profiler de Sistema PHP

ReferênciasReferências Patterns & Practices -Performance Testing Guidance Patterns & Practices -Performance Testing Guidance

for Web Applications (Autor: Scott Barber)for Web Applications (Autor: Scott Barber)

FACCHINI, G. . Introdução ao Teste de Performance. FACCHINI, G. . Introdução ao Teste de Performance. 2009. (Apresentação de Trabalho/Conferência ou 2009. (Apresentação de Trabalho/Conferência ou palestra).palestra).

Yu. V. Shabatura, Cand. Sc. Yu. V. Shabatura, Cand. Sc. (Eng); I. V. Shtelmakh; M. (Eng); I. V. Shtelmakh; M. Yu. Shabatura. 2009. New Method For Improvement Yu. Shabatura. 2009. New Method For Improvement Software Performance In Computing Systems By Software Performance In Computing Systems By Automatical Searching of «BOTTLENECKS» Automatical Searching of «BOTTLENECKS» Informational Technologies And Computer Informational Technologies And Computer EnginneringEnginnering

Molyneaux Molyneaux, I. (2009). The Art of Application Molyneaux Molyneaux, I. (2009). The Art of Application Performance Testing: Help for Programmers and Performance Testing: Help for Programmers and Quality Assurance. Quality Assurance. O’ ’Reilly Media. 1a edição.O’ ’Reilly Media. 1a edição.

Page 22: Xdebug Aluno: Diego Rangel da Silva Profiler de Sistema PHP

EngajamentoEngajamento

• Para que testar?

• Quantos usuários?

• Qual SLA?

• Quais as transações críticas?

Voltar

Page 23: Xdebug Aluno: Diego Rangel da Silva Profiler de Sistema PHP

Plano de PerfomancePlano de Perfomance

• Baseado na atividade anterior, define-se os tipos de testes que ocorrerão

• Aprofundamento dos requisitos

• Já existem dados de produção que podem ser utilizados como estimativas?

Voltar

Page 24: Xdebug Aluno: Diego Rangel da Silva Profiler de Sistema PHP

Schedule(Programação)Schedule(Programação)

Define-se os tempos de cada atividade subseqüente

Voltar

Page 25: Xdebug Aluno: Diego Rangel da Silva Profiler de Sistema PHP

Preparação do CódigoPreparação do Código

• Scripts automatizados

• Código que roda consultas em banco, dispara processos

Voltar

Page 26: Xdebug Aluno: Diego Rangel da Silva Profiler de Sistema PHP

Preparação de DadosPreparação de Dados

• É necessária a criação de dados?

• De que tipo?

• Como criar?

• Criação antecede o teste...

Voltar

Page 27: Xdebug Aluno: Diego Rangel da Silva Profiler de Sistema PHP

Preparação do Processo de Preparação do Processo de LimpezaLimpeza

• Dados são invalidados depois de utilizados?

• Precisa limpar depois de cada execução?

• Preencher valores ausentes?

Voltar

Page 28: Xdebug Aluno: Diego Rangel da Silva Profiler de Sistema PHP

Preparação do AmbientePreparação do Ambiente

• Em que hardware?

• Configuração de software

• Configuração de rede

• Devemos ter um ambiente similar (comparável) ao de produção

Voltar

Page 29: Xdebug Aluno: Diego Rangel da Silva Profiler de Sistema PHP

ExecuçãoExecução

• Os testes planejados são executados

• São identificados os gargalos do sistema (DB? SO? Web? App?)

• Se os SLA não são atingidos ou o tempo de resposta é ruim ou inaceitável para os usuários, corrige-se os gargalos

• Re-execução e correção (tunning) do sistemasão feitos até atingir o resultado esperado

Voltar

Page 30: Xdebug Aluno: Diego Rangel da Silva Profiler de Sistema PHP

RelatóriosRelatórios

• Relatórios de utilização esperada de recursos

• Tempos de resposta dos usuários

• Principais melhorias

Voltar

Page 31: Xdebug Aluno: Diego Rangel da Silva Profiler de Sistema PHP

Monitoramento de Monitoramento de ProduçãoProdução

• Identificar se o comportamento de produçãoestá dentro do cenário previsto no teste

• O tempo de resposta está aceitável?

• Existe alguma camada que está sobre-carregada?

Voltar

Page 32: Xdebug Aluno: Diego Rangel da Silva Profiler de Sistema PHP

Fechamento do ProcessoFechamento do Processo

Se não existem problemas em produção, finaliza-se o processo de performance

Voltar