Avaliação de Desempenho Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Marcos José

Slides:



Advertisements
Apresentações semelhantes
Avaliação de Desempenho Planejamento de Experimentos
Advertisements

Limites de Desempenho Grupo 8.
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
Sistemas Distribuídos
A Interface entre Processadores e Periféricos
Sistemas Distribuídos:Definições e Caracteristicas
Sistemas Operacionais - 3
SAD - SISTEMA DE APOIO À DECISÃO Prof. Wagner Andrade
Desempenho de cpu Arquitetura e Organização de Computadores 1
Arquitetura de Sistemas Operacionais
CISC e RISC.
SSC114 Arquitetura de Computadores Avaliação de Desempenho
Diretrizes para Desenvolvimento do Projeto
Sistemas Operacionais Planejamento de Experimento
Avaliação de Sistemas Operacionais
Avaliação de Desempenho Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Aferição de.
Avaliação de Desempenho de Sistemas Computacionais
Avaliação de Desempenho
Avaliação de Desempenho Aula 8 Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Marcos.
Avaliação de Desempenho Aula 5 Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Marcos.
Avaliação de Desempenho Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Marcos José
Avaliação de Desempenho Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Marcos José
Marcos José Santana Regina Helena Carlucci Santana
Avaliação de Desempenho Planejamento de Experimentos 2 Aula 2 Marcos José Santana Regina Helena Carlucci Santana Universidade de São Paulo Instituto de.
Avaliação de Desempenho de Sistemas Operacionais
Avaliação de Desempenho Aula 5 Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Marcos.
Avaliação de Desempenho
Avaliação de Desempenho Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Marcos José
Avaliação de Desempenho
Avaliação de Desempenho Planejamento de Experimentos 1
Avaliação de Desempenho
Avaliação de Desempenho de Sistemas Computacionais
Avaliação de Desempenho
Avaliação de Desempenho Introdução Aula 1 Marcos José Santana Regina Helena Carlucci Santana Universidade de São Paulo Instituto de Ciências Matemáticas.
Avaliação de Desempenho Introdução Aula 1 Marcos José Santana Regina Helena Carlucci Santana Universidade de São Paulo Instituto de Ciências Matemáticas.
Simulação de Sistemas Prof. MSc Sofia Mara de Souza AULA2.
Ambiente de simulação Os algoritmos previamente discutidos foram analisados usando um simulador de mobilidade. Ele modela uma cidade de 20 Km de raio,
Protocolo CMB em simulação distribuída
Revisão de Conceitos Básicos Hardware (Parte 1)
Avaliação de Desempenho
Estratégias Cliente-Servidor para SIGWeb
Linguagem de Programação IV
Sistemas Distribuídos
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Arquitetura Cliente /Servidor
ÍNDICES DE CARGA E DE DESEMPENHO SSC-642 SISTEMAS COMPUTACIONAIS DISTRIBUÍDOS.
Sistemas Operacionais I
Avaliação de Desempenho
Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 05.
Sistemas Distribuídos Introdução. Conceito Coleção de múltiplos processos que executam sobre uma coleção de processadores autônomos interligados em uma.
BD Distribuído Conceitos Iniciais.
Universidade de Mogi das Cruzes Tec
SISTEMAS OPERACIONAIS I
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Processos.
O que é? É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido. A validação do.
Subsistema de Entrada e Saída do Kernel
CONECTIVIDADE Prof.: Alessandro V. Soares Ferreira
Avaliação de Desempenho de Sistemas Computacionais
Engenharia de Software
Conceitos de Monitoramento
Abordagem Sistemática Guilherme Amaral Avelino Avaliação e Controle de Sistemas de Informação.
Professora Michelle Luz
Arquitetura de Sistemas Operacionais
TÉCNICAS DE ESTIMATIVAS
INPE / CAP-315 Airam J. Preto, Celso L. Mendes Aula 33 (1) Análise de Desempenho em Programas Paralelos Tópicos: Introdução Aquisição de Dados.
Desenvolvimento de Software I
 Evolução constante das linguagens de programação de alto nível (LAN) desde o Fortran (primeira LAN)  Surgimento de novos paradigmas como a OO, Orientação.
UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO CURSO DE CIÊNCIA DA COMPUTAÇÃO Redes de Computadores Ferramenta NTop (Network Traffic Probe) Explorador.
Bruna Cavallero Martins Universidade Católica de Pelotas.
Transcrição da apresentação:

Avaliação de Desempenho Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Marcos José Santana Regina Helena Carlucci Santana Aferição de Sistemas Computacionais

Técnicas de Avaliação de Desempenho SistemaMedições Dados Protótipos Benchmarcks Coleta de Dados Aferição Rede de Filas Redes de Petri Statecharts Modelagem Simulação Analítica Aferição

Técnicas de Avaliação de Desempenho Aferição Medidas no próprio sistema Sistema deve existir e estar disponível Experimentação restrita Muito cuidado com aquisição dos dados

Benchmarcks Técnicas de Avaliação de Desempenho Protótipos Coleta de Dados Aferição Rede de Filas Redes de Petri Statecharts Modelagem Aferição

Benchmarks Origem Estabelecimento de uma marca (mark) em uma mesa de trabalho para permitir medições Ponto fixo ou referência para comparações

Benchmarks Instrumento fixo, que permite comparar um novo registro (mark - marca) a um padrão preestabelecido, a partir de um ponto de observação (bench - banco) Exemplos: –Tábua das mares –Termômetro

Benchmarks ALTURA NÍVEL DA MARÉ 1,00m – 1,50mMaré alta 1,60m - 1,70mObservação 1,80mAtenção Tábua das mares

Benchmarks Termômetro Vinho T = 38 O Febre!!! T = 36,5 O Normal Benchmark!!

Técnicas de Aferição Benchmarks Programa escrito em linguagem de alto nível, representativo de uma classe de aplicações, utilizado para medir o desempenho de um dado sistema ou para comparar diferentes sistemas

Benchmarks –Abordagem muito utilizada para a avaliação de desempenho por aferição –Ponto de referência que serve para fazer medições e comparações –Uso: Comparar desempenho de máquinas diferentes Reprojetar hardware e software Decidir sobre aquisição de sistemas Ajudar na otimização de programas Previsão de desempenho de aplicações em computadores específicos

Permitem avaliar o sistema como um todo, incluindo aspectos relacionados com: –Arquitetura do sistema –Eficiência do compilador –Sobrecarga do sistema operacional –Sobrecarga de comunicação –Identificam pontos fortes e fracos de um sistema em particular ou de aplicações Benchmarks

Como escolher um benchmark? –Ideal -> aplicação do usuário –O ideal pode ser inviável quando os sistemas são de propósito geral –Utilização de benchmarks representativos de alguma categoria Programa que possa ser avaliado facilmente Programa que possua larga distribuição

como escolher um Benchmark: programa escrito em linguagem de alto nível; representativo de alguma categoria de programação; programa que possa ser avaliado facilmente; programa que possua larga distribuição. Benchmarks

Classificação quanto a arquitetura: –seqüenciais; –paralelas; Comitê Parkbenck (Parallel Kernels and Benchmarks) Benchmarks

Onde usar benchmark? –avaliar sistemas computacionais diferentes; –avaliar o desempenho mínimo; –tarefas genéricas ou específicas.

Áreas de Aplicação e Objetivos Três grandes áreas: –projeto não aplicável –avaliação aplicável, porém insuficiente –seleção técnica ideal

Medidas de Desempenho Freqüentemente Utilizadas Comum aos outros casos: –Tempo de resposta, –Utilização, –Throughput, –Tempo/Tamanho de filas. Freqüência de clock - MHZ –Pode ser UMA medida –Problemas – É necessário considerar: Arquitetura do processador Velocidade e quantidade de memória Disco

Medidas de Desempenho Freqüentemente Utilizadas -Fabricantes apresentam números de pico de MIPS e MFLOPS superiores aos reais, valores obtidos em situações ideais -Comparação entre máquinas com conjunto de instruções diferentes – CISC X RISC MIPS Milhões de Instruções por Segundo MFLOPS Milhões de Instruções de Ponto Flutuante por Segundo

Medidas de Desempenho Freqüentemente Utilizadas MIPS e MFLOPS são relevantes quando aplicados em computadores de mesma arquitetura para análise comparativa –Apresentam características similares de hardware e software –Números de MIPS e MFLOPS mais coerentes

Aspectos Relacionados aos Benchmarks –Quando os resultados dos Benchmarks forem interpretados, deve-se conhecer: –arquitetura do processador; –processadores; –clock; –barramento; –memória e caches; –disco rígido; –sistema operacional; –compilador –etc.

Problemas... -Sistemas com configurações diferentes geram medidas de desempenho diferentes -Otimização do compilador: influencia diretamente no desempenho medido Aspectos Relacionados aos Benchmarks

Sequencial x Paralelo Sequencial –todas as considerações acima Paralelo –todas as considerações acima –poder de processamento não é o único fator determinante da eficiência. Muito depende do quão inato é o paralelismo da aplicação, e qual a magnitude deste paralelismo pode ser explorado pela máquina Sistemas Sequenciais e Paralelos

Tipos de Benchmarks Benchmarks mais comums Whetstone, Linpack, Dhrystone Outros programas de Benchmarks Stanford Small Programs Benchmark Set EDN Benchmarks Sieve of Eratosthenes Livermore Fortran Kernels Perfect Club Benchmarks SPEC Benchmarks EuroBen Benchmarks

Tipos de Benchmarks Whetstone –Primeiro grande programa da literatura escrito para Benchmarking –Elaborado para análise de programação numérica de ponto flutuante intensivo –Apenas a versão Pascal é oficialmente controlada –resultado: número de loops por segundo

Tipos de Benchmarks Características do Whetstone –Possui alto percentual de dados e operações de ponto flutuante –Alto percentual de tempo de execução é gasto em funções matemáticas –Ao invés de variáveis locais, Whetstone utiliza muitos dados globais

Whetstone Ranking das melhores máquinas Whetstone 97 Última atualização – setembro 2006 MWips, million whetstones instructions per second (Setembro 2006) (Dezembro de 2007)

RankMachineMflop ratings (Vl=1024)Total CPUMWIPS N2N3N8(seconds) 1Intel Woodcrest 3.0GHz 4MBL2 DC Intel Woodcrest 3.0GHz-533 4MBL2 DC IBM eServer p5 570/ SunFire V20 2.2GHz (EKO) IBM eServer p5 575/ AMD Opteron852/2600 (EKO 2.2) HP DL380 Pentium4/3600 (EM64T) Dell PowerEdge 1850/3600 1MBL Dell PowerEdge 1850/3600 2MBL AMD Opteron875/2200 DC (EKO 2.0) VL = Vector loops MWIPS = million whetstones instructions per second N2,N3 e N8 – diferentes instruções de ponto flutuante no loop

Tipos de Benchmarks Livermore Fortran Kernels –Este benchmark foi criado em 1970 por F.H. McMahon –Consiste de 24 kernels ou loops de processamento numérico –Analisa desempenho de computadores e compiladores em operações com ponto flutuante

Tipos de Benchmarks Ohio Supercomputer Center Livermore Fortran Kernels executado em diferentes máquinas

Tipos de Benchmarks SPEC Benchmarks –SPEC (System Performance Evaluation Cooperative ou Standard Performance Evaluation Corporation) fundada em Outubro de 1988 por Apollo, Hewlett-Packard, MIPS e Sun Microsystems. –Possui como meta, realismo de medidas de sistemas computacionais avançados para a indústria e educação dos consumidores quanto aos aspectos de desempenho.

Tipos de Benchmarks SPEC Benchmarks –CPU –Aplicações Gráficas –Aplicações de Alto Desempenho MPI e OpenMP –Cliente/Servidor Java Projetado para medir o desempenho de servidores rodando aplicações Java –Mail Servers Mede desempenho de servidores de –Network File Systems –Web Servers Simula usuários enviando requisições

Benchmarks para Arquiteturas Paralelas e Sistemas Distribuídos: problemas com MIPS e MFLOPs não basta somá- los: comunicação; balanceamento; etc. cada tipo de arquitetura benchmark específico; Exemplos: PING e PING-PONG: utilizados na avaliação de comunicação; TTCP: avaliação de comunicação usando TCP ou UDP. Benchmarks

WebStone Desenvolvido pela Silicon Graphics Objetivo: Medir desempenho de software e hardware de servidores Web Versão Testa o servidor Web server, incluindo sistema operacional, CPU e velocidade de acesso a rede. Não testa influência da velocidade de acesso ao disco Principais medidas –Throughput máximo –Tempo médio de resposta

Surge Simula uma coleção de usuários acessando um servidorWeb Arquitetura –Conjunto de clientes conectados a um servidor Web –Cliente Conjunto de threads especificado pelo usuário requisições a documentos no servidor estados ON e OFF –ON transferência de arquivos –OFF Ativo e Inativo

Protótipos Técnicas de Avaliação de Desempenho Benchmarks Coleta de Dados Aferição Rede de Filas Redes de Petri Statecharts Modelagem Aferição

Técnicas de Aferição Construção de Protótipos Versão simplificada de um sistema computacional que contém apenas características relevantes para a análise do sistema

Técnicas de Aferição Construção de Protótipos uma implementação simplificada do sistema real; abstração das características essenciais; sistemas em fase de projeto; produz resultados com boa precisão; recomendado para verificação do projeto final; problema: custo e alterações.

Considerações envolvidas: identificar os objetivos do projeto; abstrair as características essenciais; definir a estratégia de coleta de dados no protótipo; desenvolver o protótipo; avaliar o seu desempenho; Além disso, devem ser considerados: viabilidade da prototipação do sistema; melhorias no protótipo, em função da avaliação e análise. Construção de Protótipos

1)Analisar se o sistema é um bom candidato a prototipação 2)Delimitar e conhecer perfeitamente os domínios funcionais e comportamentais do sistema 3)Desenvolver o protótipo 4)Testar o protótipo 5)Coletar dados do protótipo Após o passo 4, o protótipo já provê uma idéia do sistema real. Os passos 3, 4 e 5 são repetidos iterativamente até que se tenha toda a funcionalidade do sistema representada no protótipo

Construção de Protótipos Concluindo..... Ótima opção para verificação de projetos Bom para alguns tipos de sistemas Custo pode ser um problema Flexibilidade não é ponto forte!

Monitores Técnicas de Avaliação de Desempenho Benchmarks Protótipos Aferição Rede de Filas Redes de Petri Statecharts Modelagem Aferição

Técnicas de Aferição Coleta de Dados Ferramenta para observar as atividades de um sistema coletando as características relevantes para a análise do sistema Ferramenta = Monitor

Monitores Avaliar o Desempenho e Identificar Pontos Críticos Objetivos: Determinar partes mais utilizadas Determinar gargalos Ajustar Parâmetros Caracterizar Carga de Trabalho Determinar Parâmetros para modelos

Monitores oferece os melhores resultados; problema central interfere com o sistema e o sistema TEM de existir! Dois tipos básicos de abordagens: Monitores de Software e de Hardware.

Componentes de um Monitor Observador Coletor Analisador Apresentação Interpretação Console Gerenciamento

Componentes de um Monitor 1.Observador Obtém Dados do Sistema Espião – observa as atividades do sistema Ex. Escuta em uma rede Instrumentação - incorpora pontos de prova, traces ou contadores Sobrecarga no sistema Ex. Determinar tempo para enviar mensagem Teste – inclui usuário para monitorar sistema Ex. Envia mensagens para monitorar filas Sistema pode ter um ou mais observadores

Componentes de um Monitor 2.Coletor Centraliza e Filtra os Dados Coletados Armazena dados obtidos e histórico dos dados Sistema pode ter um ou mais coletores: problemas de sincronismo e comunicação de dados 3.Analisador Analisa os Dados Coletados Considera análise estatística

Componentes de um Monitor 4.Apresentação dos Dados Produz Gráficos, Relatórios, Alarmes, etc. Oferece Interface Homem-Máquina 5.Interpretação Analisa o significado dos Dados Análise Inteligente

Componentes de um Monitor 6.Console Controla parâmetros e estados do monitor ou do Sistema Nem sempre faz parte do Monitor 7.Gerenciamento Toma decisão sobre o que deve ser alterado no sistema ou no monitor

Monitores Monitores podem ser classificados seguindo diferentes enfoques: 1.Forma de Ativação Mecanismo de Disparo 2.Forma de Obtenção dos dados Mecanismo de Coleta dos Dados Mecanismo Visualização dos Dados Definição da Carga de Trabalho 3.Forma de Implementação Hardware, Software, Firmware e Híbrido

Monitores Forma de Ativação - Mecanismo de Disparo Define quando o monitor será ativado para coletar e gravar as informações 1.Baseado em Evento Mudança de Estado no Sistema Ativa o Monitor Exemplos: Chaveamento de Processos, Acesso a disco, Acesso a rede 2.Baseado em Amostragem O Monitor é Ativado em Intervalos de Tempo Fixos Exemplo: a cada 1 seg o monitor verifica se a rede está ocupada

Monitores Mecanismo de Disparo 1.Baseado em Evento Assíncrono Adequado para eventos raros – causa menor sobrecarga 2.Baseado em Amostragem Síncrono Adequado para eventos freqüentes Pode perder eventos Período de amostragem deve ser adequadamente definido Longo – perda de eventos Curto – aumento de sobrecarga

Monitores Forma de Obtenção dos Dados - Mecanismo de Coleta dos Dados Define como os dados serão coletados 1.Coleta Direta Métrica é retirada Diretamente do Sistema Exemplos: Tempo de Resposta de um Disco 2.Coleta Indireta Métrica é Obtida através de Relações de dependência com outras métricas retiradas do sistema Exemplo: Cálculo da Utilização de um Processador

Monitores Forma de Obtenção dos Dados - Mecanismo Visualização dos Dados 1.On-line Analisados e apresentados ao avaliador ao mesmo tempo em que são coletados Exemplos: Avaliação do tráfego de uma rede 2.Batch Dados são coletados, armazenados e depois de terminada a coleta são analisados Exemplo: Tempo médio de resposta ou utilização de um processador

Monitores Mecanismo Visualização dos Dados 1.On-line Número pequeno de eventos Avaliação Comportamental do Sistema 2.Batch Grande número de eventos Avaliação de Desempenho, Confiabilidade ou da Segurança de um Sistema

Monitores Forma de Obtenção dos Dados - Definição da Carga de Trabalho 1.Passiva Coleta realizada com a operação normal do Sistema 2.Ativa Coleta realizada com cargas controladas Carga é gerada e injetada no sistema

Monitores Definição da Carga de Trabalho 1.Passiva Resultados não podem ser reproduzidos 2.Ativa Carga Controlada Mais limitada que a Passiva Resultados não pode ser totalmente reproduzidos Testes podem ser repetidos de forma similar Carga Sintética Não real Resultados podem facilmente ser reproduzidos

Monitores Forma de Implementação Define o nível em que o monitor será implementado 1.Hardware 2.Software 3.Firmware 4.Híbrido

Monitores Forma de Implementação Hardware –monitor de hardware que é conectado com o sistema (observador silencioso) –não interfere no funcionamento normal do sistema medido –captura eventos rápidos –apresenta dificuldades em fazer medidas em nível de software –técnica cara

Monitores Forma de Implementação Software Vantagens: generalidade flexibilidade para medidas em nível de programas Desvantagens: ele pode interferir com o normal funcionamento do sistema não captura eventos que ocorrem rapidamente

Monitores Forma de Implementação - Exemplos Software R otina inserida nos protocolos de comunicação para medir o tempo gasto em uma transação em arquivos Hardware Hardware adicionado ao sistema para espionar e contabilizar o tempo gasto em uma transação em arquivos

Monitores Forma de Implementação Firmware Implementado através da alteração de micro-código do processador Implementação em hardware, de rotinas de software através de MEF (Máquinas de Estado Finito) Similar ao monitor de Software

Monitores Forma de Implementação Híbrido Vantagens: esboça as vantagens de ambas técnicas de monitoramento ( hardware e software) flexível seu domínio de aplicação sobrepõe as outras técnicas Desvantagens: sincronização pode causar interferência difícil obtenção de programas ou medidas em nível de S.O. caro

Comparação entre monitores de Software e Hardware CritérioHardwareSoftware DomínioEventos de HardwareEventos de SO e Software Taxa de EntradaAlta (10 5 / Seg)Depende do proc. ResoluçãoNanosegundosMilisegundos Conhecimento Necessário HardwarreSoftware Capacidade de Armazenamento Limitada pelo armazenamento disp. Limitada pela sobrecarga Largura de Entrada Obtém vários dados simultâneos Único processador – um evento

Comparação entre monitores de Software e Hardware CritérioHardwareSoftware SobrecargaNenhumaVariável - <5% PortabilidadeGrandePequena ErrosMais fácil de ocorrer Raro CustoAltoBaixo DisponibilidadeGrande– mesmo com crash Para durante crash FlexibilidadeBaixaAlta

Coleta de Dados Monitores de Software: Gerais e Flexíveis Produzem interferência no sistema Informações possíveis de serem obtidas: Nível de aplicação Sistema operacional

Coleta de Dados Monitores de Hardware: Eficientes Menos invasivos Problemas: custo e complexidade

Monitores Concluindo.... Podem gerar resultados bastante confiáveis. O sistema deve existir e estar disponível. Cuidado com a interferência do Monitor nos resultados Dois tipos básicos de abordagens: Monitores de Software e de Hardware.

Concluindo.... Benchmarks podem ser utilizados para verificar diversos tipos de sistemas... –Servidores Web, –Banco de dados, –Processadores, –Redes de comunicação

Concluindo.... sendo utilizados com diferentes objetivos... Codificação de vídeo e edição de imagens, Jogos, Processamento intensivo, Processamento de textos, etc.

Concluindo.... Querendo avaliar diferentes características... Produtividade Desempenho Confiabilidade, etc.

O importante é... Escolher o Benchmark adequado, Aplicar o Benchmark de forma adequada, Analisar os resultados obtidos com critério.

Técnicas - Aferição Concluindo.... Protótipos –Sistema não existe –Fase de Projeto –Avaliar comportamento ou desempenho Monitores –Avaliação de sistemas existentes – real ou protótipo

Técnicas de Aferição Construção de Protótipos –Sistema em Projeto Benchmarks –Comparação entre Sistemas –Avaliar partes específicas de um Sistema Monitores ou Coleta de Dados –Avaliar um Sistema ou partes dele