análise de desempenho

Post on 02-Jul-2015

270 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

MAC5779Análise de Desempenho

Mauricio De Dianamdediana@ime.usp.br

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

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)

A arte da 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 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)

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

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

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

Replicação - cenário 1

Replicação - cenário 2

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

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

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

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

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)

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

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

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

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

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

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

Seleção de fatores e seus valores

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

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

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

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

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

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)

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

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)

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

Apresentação dos resultados

Considerar a audiência

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

Variáveis quantitativas x categóricas

Apresentação dos resultados

Caso

Apresentação dos resultados

Caso

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

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

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

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)

top related