Avaliação de Desempenho em Sistemas de Computação e Comunicação Universidade Federal do Espírito Santo - UFES Departamento de Informática - DI Laboratório de Pesquisas em Redes Multimidia - LPRM UFES
Objetivos do Curso Estudar os fundamentos de avaliação de desempenho Ilustrar os fundamentos através de diversos exemplos e aplicações em sistemas computacionais Fornecer elementos e técnicas para auxiliar na construção de modelos analíticos de sistemas. 2
Programa Avaliação de Desempenho O que é? Para que serve? Como avaliar o desempenho? Pilares da avaliação de desempenho Principais técnicas Conceitos básicos de desempenho Leis operacionais de desempenho Lei de Little Métricas Comuns Teoria das Filas Revisão de probabilidade e estatística Noções de Processos Estocásticos Cadeias de Markov Filas M/M/1, M/M/1/b, M/M/m, M/M/m/b 3
Avaliação Duas provas (P1 + P2) 1 trabalho Listas de exercícios nao valem nota provas serão baseadas nas listas Cálculo das médias P2 tem maior peso (cobre todo conteúdo) M P = 0, 7 ( P1 + P2*2) / 3 + 0, 3 T 4
Livros e Referências Notas de Aula no website Introduction to Probability Models, por S.M. Ross, Academic Press, 2006. The Art of Computer Systems Performance Analysis: Techniques for Experimental Design, Measurement, Simulation, and Modeling, por Raj Jain, John Wiley and Sons, 1991. Probability & Statistics with Reliability, Queuing and Computer Science Applications, por K.S. Trivedi. Willey, 2001 Capacity planning for web services, Prentice Hall PTR, 2001. Menascé, D. A. and V. A. F. Almeilda, Performance by Design: Computer Capacity Planning by Example, por D. Menascé & V. Almeida & L. Dowdy. Prentice Hall, 2004» Disponíveis na Biblioteca! 5
O que é Avaliação de desempenho? Contrariamente ao senso comum, avaliação de desempenho é uma arte segundo Raj Jain. Como um trabalho de arte não pode ser produzido mecanicamente. Cada avaliação necessita um conhecimento íntimo do sistema além de uma seleção cuidadosa da metodologia, carga de trabalho (workload) e ferramentas. Consenso: Avaliação de desempenho é chave para aumentar o grau de confiança no projeto de um novo sistema, ou de um sistema já existente 6
Para que estudar avaliação de desempenho? Objetivo chave comum para analistas, engenheiros, cientistas e usuários de um sistema de computação é obter o melhor desempenho à um dado custo. Para alcançar este objetivo, é preciso ter pelo menos um conhecimento básico de avaliação de desempenho e suas técnicas 7
Serve para : Para que serve avaliação de desempenho? avaliar alternativas de projetos; comparar sistemas, determinar o ótimo valor de um parâmetro (ajuste), identificar o gargalo, caracterizar a carga em um sistema, determinar o número e os tamanhos de componentes de um sistema (planejamento de capacidade) prever o desempenho com futuras cargas (previsão). 8
Como Avaliar o Desempenho? 9
Principais Técnicas Medição : é o processo de quantificação de métricas efetuado sobre um sistema já existente. Modelagem Analítica: é um conjunto de equações que capturam a essência do desempenho de um sistema apoiando-se em diversas teorias : leis operacionais, probabilidade e estatística, teoria das filas, teoria dos jogos, otimização, modelos matemáticos de forma geral. Simulação : consiste em desenvolver um programa representando os componentes de um sistema. Apóia-se em uma linguagem suportada por um simulador. 10
Critério Estágio Tempo necessário Ferramentas Exatidão Accuracy Trade-off(s) na avaliação Custo Convencimen to Selecionando uma técnica de avaliação Modelagem Fácil Analítica Qualquer Analistas Baixo Linguagens Pacotes de simulação Moderado Médio Simulação Qualquer Pós-protótipo Instrumentação Difícil Alto Medições 11
Selecionando métricas de desempenho Para cada estudo de desempenho, um conjunto de métricas deve ser escolhido Uma forma de preparar este conjunto é listar os serviços providos pelo sistema Para cada requisição de serviço, há vários resultados possíveis 12
Selecionando métricas de desempenho 13
Métricas comumente usadas Disponibilidade: fração do tempo que o sistema está operacional aos usuários Confiabilidade : é a probabilidade que o sistema esteja funcionando corretamente sobre um período de tempo fixo t Tempo de resposta: é o intervalo de tempo entre a requisição de um usuário e a resposta do sistema Throughput (vazão) : é a taxa ( pacotes requisições por unidade de tempo) que pode ser servida por um sistema. RTT : atraso de ida e volta entre cliente e servidor, inclui atraso de propagação, atraso de transmissão, atraso de processamento e atraso de fila 14