Avaliação de Desempenho

Slides:



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

Simulação de Sistemas Antonio J. Netto AULA1.
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
Sistemas Distribuídos
Sistemas Cliente/Servidor Introdução
Introdução à Programação uma Abordagem Funcional Programação I Prof.ª Claudia Boeres CT VII - Sala 32 Departamento de Informática Centro.
Engenharia de Software
SAD - SISTEMA DE APOIO À DECISÃO Prof. Wagner Andrade
Arquitetura de Sistemas Operacionais
CISC e RISC.
Modelagem e simulação de sistemas
SSC114 Arquitetura de Computadores Avaliação de Desempenho
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 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 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.
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 Planejamento de Experimentos 1 Aula 1 Marcos José Santana Regina Helena Carlucci Santana Universidade de São Paulo Instituto de.
Simulação de Sistemas Prof. MSc Sofia Mara de Souza AULA2.
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
Arquitectura interna de um computador
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
Professor: Márcio Amador
Universidade de Mogi das Cruzes Tec
Experimentação Algorítmica
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.
Introdução O que se espera de um sistema de computação?
Técnicas e Projeto de Sistemas
Avaliação de Desempenho de Sistemas Computacionais
MSCC - Introdução Baseado no capítulo 1 do livro Performance Evalution of Computer and Communication Systems, de Jean-Yves Le Boudec (EPFL)
Engenharia de Software
Introdução aos Sistemas Operacionais
Abordagem Sistemática Guilherme Amaral Avelino Avaliação e Controle de Sistemas de Informação.
Engenharia de Software
Professora Michelle Luz
Apresentação Leonardo Brussolo de Paula
Aula: Arquiteturas de redes: modelo de referência OSI 04/12/2010.
Processos de Software Ludimila Monjardim Casagrande 1º Semestre Desenvolvimento e Qualidade.
Engenharia de Sistemas (Lato Sensu) Victor Costa de Alemão Cisneiros Hudson Ramos Aracaju/SE COMPARAÇÃO ENTRE SERVIDORES WEB APACHE HTTP SERVER E NGINX.
UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO CURSO DE CIÊNCIA DA COMPUTAÇÃO Redes de Computadores Ferramenta NTop (Network Traffic Probe) Explorador.
Benchmarks: Dhrystone e Whetstone Matheus F. Stigger.
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 Avaliação de Desempenho Aferição de Sistemas Computacionais Marcos José Santana Regina Helena Carlucci Santana

Avaliação de Desempenho Introdução Planejamento de Experimentos Análise de Resultados Técnicas para Avaliação de Desempenho

Conteúdo Introdução Planejamento de Experimentos Motivação Introdução à Avaliação de Desempenho Etapas de um Experimento Planejamento de Experimentos Técnicas para Avaliação de Desempenho Análise de Resultados

Etapas a serem consideradas 1.  Estudar o sistema e definir os objetivos 2.  Determinar os serviços oferecidos pelo sistema 3.  Selecionar métricas de avaliação 4.  Determinar os parâmetros que afetam o desempenho do sistema 5.  Determinar o nível de detalhamento da análise 6.  Determinar a Técnica de Avaliação apropriada 7.  Determinar a carga de trabalho característica  8.  Realizar a avaliação e obter os resultados 9.  Analisar e interpretar os resultados 10. Apresentar os resultados Planejamento de Experimento Técnica de Avaliação Análise dos Resultados

Conteúdo Introdução Planejamento de Experimentos Conceitos Básicos Carga de trabalho Modelos para Planejamento de Experimento Análise de Resultados Técnicas para Avaliação de Desempenho

Conteúdo Introdução Planejamento de Experimentos Análise de Resultados Medidas de Desempenho Análise Estatística dos Resultados Comparação de Resultados Procedimento para análise de resultados Exemplos Técnicas para Avaliação de Desempenho

Conteúdo Introdução Planejamento de Experimentos Análise de Resultados Técnicas para Avaliação de Desempenho Apresentação das Técnicas Aferição – Benchmarks e Protótipos Aferição - Monitores Desenvolvimento de Modelos Solução de Modelos – Simulação e Analítica Apresentação das Técnicas

Técnicas de Avaliação de Desempenho Aferição

Técnicas de Avaliação de Desempenho Modelagem

Técnicas de Avaliação de Desempenho Modelagem Desenvolvimento de um modelo Não é necessário ter o sistema disponível Grande flexibilidade Resultados estocásticos Necessita validar modelo e solução

Técnicas de Avaliação de Desempenho Vantagens: Flexibilidade Pode ser utilizada para sistema existente ou não Custo X Precisão Dificuldades: Descrição das características principais Validação Modelagem

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

Técnicas de Avaliação de Desempenho Aferição Vantagens: Não é necessário o desenvolvimento de um modelo Dificuldades: Controlar interferências Falta de Flexibilidade

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

Técnicas de Avaliação de Desempenho Modelagem Aferição Modelagem Rede de Filas Protótipos Simulação Benchmarcks Redes de Petri Analítica Coleta de Dados Modelo Solução Métodos Analíticos Simulação Sistema

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

Benchmarks Instrumento fixo, que permite comparar uma medida (mark - marca) a um padrão preestabelecido Deve-se ter um ponto de observação (bench - banco) Ponto fixo ou referência para comparações

Benchmarks Empresas Ponto fixo ou referência para comparações Utilizam como modelo Onde elas pretendem chegar Ponto fixo ou referência para comparações Definir um benchmark para a vida.... Exemplos: Tábua das mares Termômetro

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

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

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 Exemplo i5 i7 2 ou 4 núcleos 4 ou 6 núcleos Não possui Hyper-threading possui Hyper-threading – 2 núcleos lógicos para cada físico DMI - Direct Media Interface (taxa de transferência ~2Gb/s) QPI - Quick Path Interconnect (taxa de transferência >4,8Gb/s) Quantidade de canais para acesso a memória – 2 (acessa 2 pentes ao mesmo tempo) Quantidade de canais para acesso a memória – 3 (acessa 3 pentes ao mesmo tempo) Qual a diferença entre um i5 e um i7? Qual a influência no desempenho??

Benchmarks http://www.cpubenchmark.net/ PassMark Performance Test Processador Benchmark Preço ($) Intel Core i7 980X @ 3.33GHz 10336 1000,00 Intel Core i7 975 @ 3.33GHz 7007 994,49 Intel Core i5 760 @ 2.80GHz 4510 205,00 Intel Core i5 680 @ 3.60GHz 3431 296,66 Intel Core i7 740QM @ 1.73GHz 3521 546,00

Benchmarks 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

Benchmarks 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

Como escolher um benchmark? 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 Necessita-se de algo mais amplo e representativo programa escrito em linguagem de alto nível; representativo de alguma categoria de programação; que possa ser avaliado facilmente; que possua larga distribuição.

Benchmarks Divididos em: Benchmark de componente; Benchmark de sistema; Benchmark de aplicação – utiliza programas representativos Benchmark sintético - imitam ambientes de execução de programas reais. Geram dados estatísticos

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 MIPS Milhões de Instruções por Segundo MFLOPS Milhões de Instruções de Ponto Flutuante por Segundo 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

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.

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

Sistemas Sequenciais e Paralelos Sequencial x Paralelo Sequencial todas as considerações acima Paralelo 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

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 98 MWips, million whetstones instructions per second http://homepage.virgin.net/roy.longbottom/whetstone%20results.htm (Abril 2012)

MWIPS = million whetstones instructions per second Rank Machine Mflop ratings (Vl=1024) Total CPU MWIPS N2 N3 N8 (seconds) 1 Intel Woodcrest 3.0GHz 4MBL2 DC 1966 4588 2907 3.3 10560 2 Intel Woodcrest 3.0GHz-533 4MBL2 DC 3069 10451 3 IBM eServer p5 570/1.9 1625 6.2 6219 4 SunFire V20 2.2GHz (EKO) 1311 1298 1481 7.7 4496 5 IBM eServer p5 575/1.5 1529 1315 7.8 4874 6 AMD Opteron852/2600 (EKO 2.2) 1513 1547 1771 8.1 4488 7 HP DL380 Pentium4/3600 (EM64T) 1720 607 8.4 4408 8 Dell PowerEdge 1850/3600 1MBL2 4351 9 Dell PowerEdge 1850/3600 2MBL2 8.5 4370 10 AMD Opteron875/2200 DC (EKO 2.0) 1251 1497 8.6 4543 VL = Vector loops MWIPS = million whetstones instructions per second N2,N3 e N8 – diferentes instruções de ponto flutuante no loop

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 e-mail Network File Systems Web Servers Simula usuários enviando requisições

Benchmarks 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 Para utilização específica: Servidores Web Redes HD Servidores de e-mail Virtualização SOA Servidores de arquivos Etc.....

WebStone Desenvolvido pela Silicon Graphics Objetivo: Medir desempenho de software e hardware de servidores Web Versão 2.0.1 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

httperf Ferramenta para medir o desempenho de servidores Web Gera várias cargas HTTP Arquitetura Maior independência do SO Única thread Mecanismo próprio de Timeout Três módulos HTTP Gerenciamento de conexões Geração de requisições http Geração de carga Regras para a geração de requisições Coleta de estatísticas

httperf Carga Conexões persistentes e requisições em cascata Geradores de carga Geração de requisições Requisições a uma taxa fixa. Padrão  1 req/con Sessões a uma taxa fixa. 1 sessão  várias rajadas de requisições. Think time  0. Geração de URLs Seqüência de URLs que devem ser acessadas no servidor.

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

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

Querendo avaliar diferentes características... 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 de Avaliação de Desempenho Aferição Aferição Modelagem Benchmarks Rede de Filas Protótipos Redes de Petri Coleta de Dados Statecharts

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 Primeiro Exemplar Primeiro Modelo

Construção de Protótipos 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.

Construção de Protótipos 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 Analisar se o sistema é um bom candidato a prototipação Delimitar e conhecer perfeitamente os domínios funcionais e comportamentais do sistema Desenvolver o protótipo Testar o protótipo 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 Exemplos..... MADRI - Uma equipe de pesquisadores espanhóis criou um protótipo de vacina contra o HIV "muito mais potente" Estadão - 28 de setembro de 2011

Construção de Protótipos Exemplos..... Maquete de um prédio Objetivo: vender apartamentos Objetivo: visualização do projeto arquitetonico

Construção de Protótipos Exemplos..... Projeto de uma página Web Objetivo: verificar a eficiência Objetivo: verificar a usabilidade

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!