2. 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
3. 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)
5. A arte da avaliação de desempenho
Sistema Carga de trabalho 1 Carga de trabalho 2
A 20 10
B 10 20
6. 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)
7. 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
8. 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
9. 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
12. 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
13. 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
14. 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
15. 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)
16. 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
17. 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
18. 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
19. 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
20. 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
21. 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
22. Seleção de fatores e seus valores
Caso
33 parâmetros, 4 fatores
Principal limitação: infraestrutura
23. 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
24. 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
25. 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
26. 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ência
J: Jitter
P: Perda de pacotes
D: Duplicação de pacotes
O: Reordenação de pacotes
C: Variante do TCP
Caso
27. 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)
28. 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
29. 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)
30. 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
34. 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
35. 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
36. 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
37. 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)