MAC5779
Análise de Desempenho
Mauricio De Diana
mdediana@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ência
J: Jitter
P: Perda de pacotes
D: Duplicação de pacotes
O: Reordenação de pacotes
C: 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)

Análise de desempenho

  • 1.
    MAC5779 Análise de Desempenho MauricioDe Diana mdediana@ime.usp.br
  • 2.
    Desempenho de sistemas Quantidadede 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çõesWeb (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)
  • 4.
    A arte daanálise de desempenho
  • 5.
    A arte daavaliação de desempenho Sistema Carga de trabalho 1 Carga de trabalho 2 A 20 10 B 10 20
  • 6.
    A arte daavaliaçã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 daavaliaçã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 daavaliaçã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 Desempenhode sistemas com dados georeplicados com consistência em momento indeterminado e na linha do tempo http://ime.usp.br/~mdediana/diss-mdediana.pdf
  • 10.
  • 11.
    Replicação - cenário2 Fonte: http://www.julianbrowne.com/article/viewer/brewers-cap-theorem
  • 12.
    Estudo de caso Consistênciaem 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álisede 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çãode 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çãoda 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 metase 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çose 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étricasde 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 Quantidadede 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 fatorese 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 fatorese seus valores Caso 33 parâmetros, 4 fatores Principal limitação: infraestrutura
  • 23.
    Seleção da técnicade 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 cargade 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 Definidopor 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çãoL 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 1atentativa (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çãodos 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çãodos 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çãodos 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
  • 31.
    Apresentação dos resultados Considerara audiência Mais tabelas e gráficos, menos jargão estatístico Variáveis quantitativas x categóricas
  • 32.
  • 33.
  • 34.
    Apresentação dos resultados Caso Ganhosrelativos 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 demé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álisede 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 ofComputer 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)