Avaliação de Desempenho de Sistemas Computacionais José Augusto Suruagy Monteiro Dept. de Informática - UFPE www.di.ufpe.br/~suruagy
O que é “Desempenho”? Webster’s: Aurélio: The manner in which a mechanism performs. Aurélio: Mil. Conjunto de características ou de possibilidades de atuação de uma aeronave, tais como velocidade de cruzeiro, velocidade de pouso, capacidade de carga, autonomia de vôo, etc.
Medidas de desempenho de um automóvel Velocidade máxima Aceleração (tempo para ir de 0 a 100 km/h) Espaço de frenagem a uma dada velocidade
Medidas de desempenho de sistemas computacionais Vazão/Taxa (Throughput) Taxa na qual os pedidos são atendidos (servidos) pelo sistema. Utilização: Fração do tempo em que o recurso permanece ocupado atendendo os pedidos dos usuários Tempo de resposta: tempo decorrido entre o pedido e o início/conclusão da realização do serviço.
Vazão Taxa na qual os pedidos são atendidos (servidos) pelo sistema. Exemplos Sistemas em lotes: jobs por segundo Sistemas interativos: pedidos por segundo CPUs: MIPs ou MFLOPs Redes: pacotes por segundo (pps) ou bits por segundo (bps) Sistemas de Processamento de Transações: Transações por segundo (TPS)
Medidas de desempenho Velocidade Confiabilidade Disponibilidade tempo de resposta, vazão e utilização Confiabilidade Probabilidade de erro Intervalo entre erros Disponibilidade Duração da falha Intervalo entre falhas
Benchmarks BENCHMARKING é o processo de comparação entre dois ou mais sistemas através de medições. BENCHMARKS são as cargas de trabalho (workloads) utilizadas nestas medições
Benchmarks populares Crivo de Eratóstenes Função de Ackermann Whetstone LINPACK Dhrystone Laços do Lawrence Livermore Débito-crédito SPEC…
SPEC Benchmark SPEC = Systems Performance Evaluation Cooperative www.specbench.org Benchmarks atuais SPEC95 SPECweb96 Em desenvolvimento: SPEC98
SPEC95 Versões anteriores: SPEC89 e SPEC92 Composta por dois conjuntos de benchmarks: CINT95: para cálculos intensivos com inteiros CFP95: para cálculos intensivos de ponto flutuante Máquina de referência: SUN SPARCstation 10/40 com 128MB de memória
CINT95 Escrita em C, contém 8 benchmarks para cálculos intensos sobre inteiros Medidas: SPECint95: média geométrica de oito frações normalizadas quando compiladas com otimização “agressiva”. SPECint_base95: idem para compilação com otimização tradicional (conservadora) SPECint_rate95: média geométrica de oito frações de vazões quando compiladas com otimização “agressiva”. SPECint_rate_base95: idem para compilação com otimização tradicional (conservadora)
CFP95 Escrita em FORTRAN, contém 10 benchmarks para cálculos intensos sobre números reais (ponto flutuante). Medidas: SPECfp95: média geométrica de dez frações normalizadas quando compiladas com otimização “agressiva”. SPECfp_base95: idem para compilação com otimização tradicional (conservadora) SPECfp_rate95: média geométrica de dez frações de vazões quando compiladas com otimização “agressiva”. SPECfp_rate_base95: idem para compilação com otimização tradicional (conservadora)
SPECweb96 Objetivo: Medir o desempenho de servidores Web Nesta primeira versão mede o desempenho para acesso a páginas estáticas Mede a capacidade do servidor atender os pedidos do HTTP, ou seja, “gets”.
SPECweb96 Um ou mais clientes enviam pedidos do HTTP para o servidor O software mede o tempo de resposta para cada pedido Ao final da execução, o software calcula uma medida baseada na vazão total.
SPECweb96
Técnicas de Avaliação Medição Modelagem Analítica Simulação
Medição Para efetuarmos medições (como as Benchmarks) é preciso termos à disposição ao menos um protótipo do sistema. Normalmente é difícil comparar alternativas
Modelagem Analítica Teoria das filas Filas associadas a recursos Caracterização: Processo de chegada Processo de atendimento Número de servidores Tamanho máximo da fila Política de atendimento da fila
Modelagem Analítica É uma técnica aproximada Aproxima a realidade por um modelo Se o modelo for simples e a aproximação boa, é possível avaliar facilmente compromissos entre alternativas
Simulação Simulação de eventos discretos Cada evento (ex.: chegada de usuário, término de serviço, etc.) é tratado quando do instante de sua ocorrência. Simula o comportamento de um sistema real Em geral, é possível construir um modelo muito mais próximo da realidade do que com a teoria das filas
Critérios para seleção da técnica de avaliação