37
MAC5779 Análise de Desempenho Mauricio De Diana [email protected]

Análise de desempenho

Embed Size (px)

DESCRIPTION

Aula na disciplina Engenharia de Software Experimental do IME-USP.

Citation preview

Page 1: Análise de desempenho

MAC5779Análise de Desempenho

Mauricio De [email protected]

Page 2: Análise de desempenho

Desempenho de sistemas

Quantidade de trabalho x tempo e / ou recursos

Exemplos: Tempo de resposta Vazão Utilização Consumo de banda Consumo de energia

Afeta Custo Escalabilidade Funcionalidade etc

Page 3: Análise de desempenho

Desempenho de sistemas

Aplicações Web (tempo de resposta, vazão)

Centros de processamento de dados (energia, banda)

Computação científica (vazão)

Análise de dados (armazenamento, vazão)

Computação móvel (memória, banda)

Page 4: Análise de desempenho

A arte da análise de desempenho

Page 5: Análise de desempenho

A arte da avaliação de desempenho

Sistema Carga de trabalho 1 Carga de trabalho 2

A 20 10

B 10 20

Page 6: Análise de desempenho

A arte da avaliação de desempenho

Sistema Carga de trabalho 1 Carga de trabalho 2

A 20 10

B 10 20

Pela Média: Iguais (A -> 15, B -> 15)

Page 7: Análise de desempenho

A arte da avaliação de desempenho

Sistema Carga de trabalho 1 Carga de trabalho 2

A 20 10

B 10 20

B como base: A é melhor (A -> 1.25, B -> 1)

Sistema Carga de trabalho 1 Carga de trabalho 2

A 2 0.5

B 1 1

Page 8: Análise de desempenho

A arte da avaliação de desempenho

Sistema Carga de trabalho 1 Carga de trabalho 2

A 20 10

B 10 20

A como base: B é melhor (A -> 1, B -> 1.25)

Sistema Carga de trabalho 1 Carga de trabalho 2

A 1 1

B 0.5 2

Page 9: Análise de desempenho

Estudo de caso

Desempenho de sistemas com dados georeplicados com consistência em momento indeterminado e na linha do tempo

http://ime.usp.br/~mdediana/diss-mdediana.pdf

Page 10: Análise de desempenho

Replicação - cenário 1

Page 11: Análise de desempenho

Replicação - cenário 2

Fonte: http://www.julianbrowne.com/article/viewer/brewers-cap-theorem

Page 12: Análise de desempenho

Estudo de caso

Consistência em momento indeterminado (Eventual) Dynamo Mestre-mestre Inconsistências temporárias (conflitos) Quóruns (N, R, W) Alta disponibilidade

Consistência na linha do tempo PNUTS Mestre-escravo Escritas consistentes, leituras consistentes ou por versão Migração de réplica mestre Menor disponibilidade

Page 13: Análise de desempenho

Limitações na análise de desempenho

Recursos disponíveis Tempo Hardware Software Pessoas Custo, em resumo

Caso Acesso à plataforma para experimentos e suas regras

Page 14: Análise de desempenho

Abordagem sistemática

1. Definição de metas e do sistema

2. Lista de serviços e suas saídas

3. Escolha das métricas de desempenho

4. Lista de parâmetros

5. Seleção de fatores e níveis

Page 15: Análise de desempenho

Abordagem sistemática

6. Seleção da técnica de avaliação

7. Seleção da carga de trabalho

8. Projeto dos experimentos

9. Análise e interpretação dos dados

10. Apresentação dos resultados(iterar se necessário)

Page 16: Análise de desempenho

Definição de metas e do sistema

Sistema testado x componente testado

Definição de sistema depende da meta

Definições de métricas e carga de trabalho dependem da definição do sistema

Caso Sistema: Riak Meta: Análise de dois modelos de consistência diferentes operando em uma WAN

Page 17: Análise de desempenho

Lista de serviços e suas saídas

O que o sistema realiza e resultados possíveis

Caso CRUD: Resposta consistente, inconsistente, erro Map/Reduce: ... Monitoração: ... etc

Page 18: Análise de desempenho

Escolha de métricas de desempenho

Métrica: critério de análise de desempenho (variáveis de resposta)

Em geral relativas a velocidade, acurácia e disponibilidade

Caso Tempo de resposta Quantidade de conflitos

Page 19: Análise de desempenho

Lista de parâmetros

Parâmetros: características que afetam o desempenho

Sistema: hardware e software

Carga de trabalho: requisições

Caso Configuração dos nós Mecanismo de armazenamento - memória ou disco Quantidade de nós do sistema Quantidade de objetos armazenados Tamanho dos objetos armazenados

Page 20: Análise de desempenho

Lista de parâmetros

Caso Quantidade de enlaces de WAN Latências da LAN / WAN Jitters da LAN / WAN Larguras de banda da LAN / WAN

Relação leitura / escrita Localidade de acessos etc

Page 21: Análise de desempenho

Seleção de fatores e níveis

Fatores: variáveis dependentes (parâmetros variados)

Níveis: valores dos fatores

Interação entre fatores

Limitados por Tempo / recursos Complexidade da análise de resultados

Parâmetros fixados: aqueles que não são fatores

Page 22: Análise de desempenho

Seleção de fatores e seus valores

Caso 33 parâmetros, 4 fatores Principal limitação: infraestrutura

Page 23: Análise de desempenho

Seleção da técnica de avaliação

Principais: Modelagem analítica, simulação e medição

Critérios de seleção Estágio de desenvolvimento do sistema Tempo necessário Ferramentas Acurácia Avaliação de custo-benefício Custo Venda dos resultados

Caso Medição

Page 24: Análise de desempenho

Seleção da carga de trabalho

Lista de requisições para o sistema

Deve ser representativa do caso de uso do sistema

Benchmark: define condições de comparação

Caso Benchmark (Basho Bench) Relação leitura/escrita Localidade Popularidade dos objetos

Page 25: Análise de desempenho

Projeto dos experimentos

Definido por custo / benefício

Duas fases Seleção de fatores significativos Estudo final

Experimentos fatoriais Completo (qtde exp = �(i = 1, k) ni) x fracionado 2k (qtde exp = 2k) Com / sem replicação

Page 26: Análise de desempenho

Projeto dos experimentos

Operação L J P D O C LJ ... LJPDOC

leitura 72 21 1 0 0 0 6 ... 0

escrita 69 23 1 0 0 0 6 ... 0

Influência relativa dos fatores de rede

L: LatênciaJ: JitterP: Perda de pacotesD: Duplicação de pacotesO: Reordenação de pacotesC: Variante do TCP

Caso

Page 27: Análise de desempenho

Projeto dos experimentos

Caso 1a tentativa (sem método) 420 exps, 24h, 5 fatores Sem análise de importância dos fatores (qualidade baixa)

2a tentativa (com método) 64 exps, 6.5h, 4 fatores Com análise de importância dos fatores (qualidade alta)

Page 28: Análise de desempenho

Análise e interpretação dos dados

Resultados, não conclusões

Estatística Média, mediana, moda Distribuições Desvio padrão, erro padrão Intervalo de confiança Tamanho da amostra etc

Ameaças à validade

Page 29: Análise de desempenho

Análise e interpretação dos dados

Caso Análises Tempos de resposta Conflitos Migrações Tratamento estatístico 99% de confiança 1% de exatidão Tamanho de amostra variável 1 replicações (com teste)

Page 30: Análise de desempenho

Análise e interpretação dos dados

Caso Ameaças à validade Parâmetros fixados Sistema operando sem falhas Arquitetura do sistema Erro: médias de tempos de resposta muito diferentes 10 reqs 300 ms (remotas) 10 reqs 1 ms (locais) média = 150.5 ms

Média é 150x maior que mínimo e metade do máximo

Page 31: Análise de desempenho

Apresentação dos resultados

Considerar a audiência

Mais tabelas e gráficos, menos jargão estatístico

Variáveis quantitativas x categóricas

Page 32: Análise de desempenho

Apresentação dos resultados

Caso

Page 33: Análise de desempenho

Apresentação dos resultados

Caso

Page 34: Análise de desempenho

Apresentação dos resultados

Caso

Ganhos relativos com relação a ind2

Percentil Localidade (%) lt_qqer lt_rec

75 50 0.87 1.0

75 90 92 97

90 50 0.77 1.3

90 90 1.4 1.6

Page 35: Análise de desempenho

Erros comuns

Falta de método

Carga de trabalho não representativa

Ignorar parâmetros / fatores relevantes

Análise muito complexa

Ignorar aspectos sociais

Omitir premissas e limitações

Médias de valores muito diferentes

Page 36: Análise de desempenho

Projeto

Faça uma análise de desempenho de um sistema a sua escolha.

Sugestões Análise de desempenho de algoritmos de ordenação ou estruturas de dados Em Ruby: https://github.com/kanwei/algorithms

Análise de desempenho de disco Benchmark: Bonnie++

Análise de aplicação / servidor Web Benchmark: ab, JMeter, etc

Page 37: Análise de desempenho

Referências

The Art of Computer Systems Performance Analysis: Techniques for Experimental Design, Measurement, Simulation, and Modeling (Jain, Raj)

Measuring Computer Performance: A Practitioner's Guide (Lilja, David)

Guerrilla Capacity Planning: A Tactical Approach to Planning for Highly Scalable Applications and Services (Gunther, Neil)

The Art of Capacity Planning: Scaling Web Resources (Allspaw, John)