Upload
mauricio-de-diana
View
270
Download
2
Embed Size (px)
DESCRIPTION
Aula na disciplina Engenharia de Software Experimental do IME-USP.
Citation preview
MAC5779Análise de Desempenho
Mauricio De [email protected]
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)