Avaliação de Desempenho de Sistemas Computacionais Protótipos e Monitores Marcos José Santana...

Post on 17-Apr-2015

113 views 4 download

Transcript of Avaliação de Desempenho de Sistemas Computacionais Protótipos e Monitores Marcos José Santana...

Avaliação de Desempenho de Sistemas Computacionais

Protótipos e Monitores

Marcos José Santana

Regina Helena Carlucci Santana

Universidade de São PauloInstituto de Ciências Matemáticas e de Computação

Departamento de Sistemas de Computação

Etapas a serem consideradas na Avaliação de Desempenho

 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

Etapas a serem consideradas na Avaliação de Desempenho

 

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 

As etapas apresentadas nem sempre são executadas linearmente como apresentado nesta

lista

Conteúdo

1. Planejamento de Experimentos

2. Análise de Resultados

3.3. Técnicas para Avaliação de Técnicas para Avaliação de DesempenhoDesempenho

Conteúdo

1. Planejamento de Experimentos

2.2. Técnicas para Avaliação de DesempenhoTécnicas para Avaliação de Desempenho

– Apresentação das técnicas

– Técnicas de Aferição:

• Protótipos, Benchmarks e Monitores

– Técnicas de Modelagem:

• Solução Analítica e por Simulação

– Exemplos

3. Análise de Resultados

Conteúdo – Parte II

1. Planejamento de Experimentos

2.2. Técnicas para Avaliação de DesempenhoTécnicas para Avaliação de Desempenho

– Apresentação das técnicasApresentação das técnicas

– Técnicas de Aferição:

• Protótipos, Benchmarks e Monitores

– Técnicas de Modelagem:

• Solução Analítica e por Simulação

– Exemplos

3. Análise de Resultados

Técnicas de Avaliação de Desempenho

Sistema Mediçõ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

Modelo SoluçãoMétodos Analíticos

Simulação

Sistema

Protótipos

Benchmarcks

Coleta de Dados

Aferição

Rede de Filas

Redes de Petri

Statecharts

Modelagem

Simulação

Analítica

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

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

Conteúdo1. Planejamento de Experimentos

2.2. Técnicas para Avaliação de DesempenhoTécnicas para Avaliação de Desempenho

– Apresentação das técnicas

– Técnicas de Aferição: Técnicas de Aferição:

• Protótipos, Benchmarks e MonitoresProtótipos, Benchmarks e Monitores

– Técnicas de Modelagem:

• Solução Analítica e por Simulação

– Exemplos

3. Análise de Resultados

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

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

Construção de Protótipos1) 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

1) Analisar se o sistema é um bom candidato a prototipação• Viabilidade da prototipação do sistema;• Custo• Dificuldades em alterar o protótipo • Exemplos:

i. Sistema de RAID para um servidor• Sistema que pode ser construído em um laboratório• Custo – proporcional ao sistema• Possível realizar alterações

ii. Sistema computacional a ser utilizado por uma empresa responsável pelas reservas de uma companhia aérea

iii. Sistema computacional para controlar uma usina nuclear

Construção de Protótipos

1) Analisar se o sistema é um bom candidato a prototipação

• Viabilidade da prototipação do sistema;• Custo• Dificuldades em alterar o protótipo • Exemplos:

i. Sistema de RAID para um servidorii. Sistema computacional a ser utilizado por uma empresa

responsável pelas reservas de uma companhia aérea• Sistema distribuído. • Pode ser construído em um laboratório mas depende

de várias máquinas• Custo – elevado• Possível realizar alterações

iii. Sistema computacional para controlar uma usina nuclear

Construção de Protótipos1) Analisar se o sistema é um bom candidato a

prototipação• Viabilidade da prototipação do sistema;• Custo• Dificuldades em alterar o protótipo • Exemplos:

i. Sistema de RAID para um servidorii. Sistema computacional a ser utilizado por uma empresa

responsável pelas reservas de uma companhia aéreaiii. Sistema computacional para controlar uma usina nuclear

• Sistema distribuído. • Necessidade de ativação/leitura de vários sensores • Difícil de ser implementado e testado em um

laboratório• Custo – elevado• Realização de alterações - difícil

Construção de Protótipos2) Delimitar e conhecer perfeitamente os domínios

funcionais e comportamentais do sistema• Definir o objetivo da avaliação baseando-se nos

objetivos do projeto• Abstrair as características essenciais • Verificar a possibilidade de obter os dados

necessários para a avaliação do protótipo• Exemplos:

Protótipo de um carro em desenvolvimento por uma montadora.

A montadora quer avaliar consumo e desempenho.

O que é importante estar presente?• Som?• Banco de couro?• Portas?

Construção de Protótipos2) Delimitar e conhecer perfeitamente os domínios

funcionais e comportamentais do sistema

• Exemplos: i. Sistema de RAID para um servidor

• Verificar a confiabilidade do sistema em questão• Verificar o comportamento quando ocorre uma falha• Dados podem ser coletados com testes no protótipo

ii. Sistema computacional a ser utilizado por uma empresa responsável pelas reservas de uma companhia aérea

iii. Sistema computacional para controlar uma usina nuclear

Construção de Protótipos2) Delimitar e conhecer perfeitamente os domínios

funcionais e comportamentais do sistema

• Exemplos: i. Sistema de RAID para um servidor

ii. Sistema computacional a ser utilizado por uma empresa responsável pelas reservas de uma companhia aérea• Verificar se sistema mantém a consistência dos dados• Dados podem ser coletados com testes no protótipo

iii. Sistema computacional para controlar uma usina nuclear

Construção de Protótipos2) Delimitar e conhecer perfeitamente os domínios

funcionais e comportamentais do sistema

• Exemplos: i. Sistema de RAID para um servidor

ii. Sistema computacional a ser utilizado por uma empresa responsável pelas reservas de uma companhia aérea

iii. Sistema computacional para controlar uma usina nuclear• Verificar a confiabilidade do sistema em questão• Verificar o comportamento quando ocorre uma falha• Dados difíceis de serem coletados• Situações complicadas de serem realizadas

Construção de Protótipos

3) Desenvolver o protótipo • Qual técnica utilizar no desenvolvimento do protótipo

i. Software• Rotinas Básicas• Interface simplificada• Comunicação entre os módulos• Documentação Básica

ii. Hardware• Implementação Manual (protoboard, wire-wrap, placas,

etc.) • FPGA• PLA – Programable Logic Array

Construção de Protótipos4) Testar e Validar o protótipo

• Garantir que as simplificações feitas não afetaram a precisão do protótipo

• Exemplo II – Companhia• Será que um protótipo com todas as máquinas juntas em um

laboratório é similar à máquinas distribuídas pelo mundo?

• Realizar testes envolvendo:i. Teste de condições extremasii. Validação aparente – análise dos resultados por

especialistasiii. Valores fixosiv. Consistência entre diferentes execuções

5) Coletar e Analisar os dados do protótipo• Definir a estratégia de coleta de dados no protótipo• Definir os dados a serem coletados

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!

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 Monitor1. 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 sistemaEx. 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

MonitoresMonitores podem ser classificados seguindo

diferentes enfoques:

1. Forma de Ativação Mecanismo de Disparo

2. Forma de Obtenção dos dadosMecanismo de Coleta dos Dados

Mecanismo Visualização dos Dados

Definição da Carga de Trabalho

3. Forma de ImplementaçãoHardware, Software, Firmware e Híbrido

MonitoresForma de Ativação - Mecanismo de Disparo

Define quando o monitor será ativado para coletar e gravar as informações

1.Baseado em EventoMudança de Estado no Sistema Ativa o Monitor

Exemplos: Chaveamento de Processos, Acesso a disco, Acesso a rede

2.Baseado em AmostragemO Monitor é Ativado em Intervalos de Tempo

FixosExemplo: a cada 1 seg o monitor verifica se a rede

está ocupada

MonitoresMecanismo de Disparo

1. Baseado em EventoAssíncrono

Adequado para eventos raros – causa menor sobrecarga

2. Baseado em AmostragemSíncrono

Adequado para eventos freqüentes

Pode perder eventos

Período de amostragem deve ser adequadamente definidoLongo – perda de eventos

Curto – aumento de sobrecarga

MonitoresForma de Obtenção dos Dados - Mecanismo de

Coleta dos DadosDefine como os dados serão coletados

1. Coleta DiretaMétrica é retirada Diretamente do Sistema

Exemplos: Tempo de Resposta de um Disco

2. Coleta IndiretaMé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

MonitoresForma de Obtenção dos Dados -

Mecanismo Visualização dos Dados

1. On-lineAnalisados e apresentados ao avaliador ao

mesmo tempo em que são coletados Exemplos: Avaliação do tráfego de uma rede

2. BatchDados são coletados, armazenados e depois

de terminada a coleta são analisadosExemplo: Tempo médio de resposta ou

utilização de um processador

Monitores

Mecanismo Visualização dos Dados

1. On-lineNúmero pequeno de eventos

Avaliação Comportamental do Sistema

2. BatchGrande número de eventos

Avaliação de Desempenho, Confiabilidade ou da Segurança de um Sistema

MonitoresForma 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

MonitoresDefiniçã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

MonitoresForma de Implementação

Define o nível em que o monitor será implementado

1. Hardware

2. Software

3. Firmware

4. Híbrido

MonitoresForma 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

MonitoresForma de Implementação

SoftwareVantagens: • 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

MonitoresForma de Implementação - Exemplos

SoftwareRotina 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

MonitoresForma 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

MonitoresForma de Implementação

HíbridoVantagens: • 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ério Hardware Software

Domínio Eventos de Hardware Eventos de SO e Software

Taxa de Entrada Alta (105 / Seg) Depende do proc.

Resolução Nanosegundos Milisegundos

Conhecimento Necessário

Hardwarre Software

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ério Hardware Software

Sobrecarga Nenhuma Variável - <5%

Portabilidade Grande Pequena

Erros Mais fácil de ocorrer

Raro

Custo Alto Baixo

Disponibilidade Grande– mesmo com crash

Para durante crash

Flexibilidade Baixa Alta

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.

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

Tarefa para próxima aula.... Cada dupla...• Pesquisar ferramentas para monitoração• Escolher uma por dupla para detalhar• Preparar apresentação de 15 minutos

– Objetivo do Monitor– Variáveis de resposta– Mecanismo de disparo– Mecanismo de visualização dos dados– Forma de implementação– Exemplo de utilização

Duplas não devem repetir a mesma ferramenta