avaliação de desempenho de sistemas computacionais protótipos e monitores marcos josé santana...
TRANSCRIPT
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