Modelos Avaliação de Desempenho de Sistemas Discretos Parte II: Modelagem de Sistemas Modelo é uma abstração de um sistema real Apenas as características importantes para a avaliação devem ser consideradas O único modelo completamente realista de um sistema é o próprio sistema (ou sua cópia fiel) Custo ou impossibilidade de tratar com sistema Na etapa de projeto, sistema não existe Professor: Reinaldo Gomes reinaldo@computacao.ufcg.edu.br Por que usar modelos? Normalmente é construído para se avaliar o comportamento para um dado sistema Comparação entre implementações do sistema Identificação de problemas Propostas de soluções Expansões em sistemas existentes... Usamos modelos para entender aspectos de nosso cotidiano Por que usar modelos? Desempenho e escalibilidade são mais facilmente alcançáveis se forem considerados no momento de projeto de um sistema Sistema Computacional = coleção de recursos Processadores, discos, enlaces de comunicação, threads de processos, seções críticas Recursos com capacidade finita para realizar trabalho Formação de filas de espera Modelagem inicial é baseada em Modelos Representação formal que permite um estudo mais detalhado do modelo Importância do uso de modelos Como construir um modelo? Modelos ajudam a simplificar problemas Melhor definição do foco do estudo Estudos diferentes podem ter focos diferentes e se complementar Princípio da separação de domínios Diferentes visões do mesmo sistema A redução da complexidade diminui também os custos e o tempo de desenvolvimento de soluções Intuição sofre de imprecisões ou polarizações Modelos podem ser criados com imperfeições Definições podem ser tendenciosas ou não reproduzir a realidade Necessitamos de metodologia mais formal ou científica para uma maior qualidade dos modelos Duas alternativas científicas principais para tentar realizar uma modelagem mais precisa Simulação Análise matemática 1
Exemplo de um servidor de BD Servidor de BD tem uma CPU e um disco Transações para o BD chegam ao servidor a uma taxa de 1,5 tps Durante a execução, uma transação pode alternar várias vezes entre CPU e disco Enquanto uma transação usa a CPU, uma outra pode usar o disco, e outras esperam pela CPU ou disco CPU e disco podem ser caracterizados por uma fila + servidor que atende às transações Exemplo de um servidor de BD Como posso representar esse sistema de tal forma que consiga realizar sua avaliação? Avaliação quantitativa sempre depende da representação matemática das métricas de desempenho do sistema Temos que criar equações que representem o nosso sistema Mas muita vezes precisamos detalhar ainda mais nossa representação, fazendo que as equações fiquem consideravelmente complexas Utilização de representações mais simples permitem que nos concentremos em modelar o sistema e não necessariamente em como montar melhor as equações Modelagem através de uma rede de filas! Representação de fila + servidor(es) Representação do servidor BD (Rede - RF) Modelagem de Sistemas com Redes Não é uma atividade trivial de ser feita É necessário abstrair o essencial para a avaliação Modelo do disco engloba aspectos da placa controladora, rotação, braço, etc. Para o modelo ser avaliado precisamos conhecer apenas o tempo que uma transação típica fica na CPU e no disco Calcular o tempo de espera na CPU e no disco Tempo total médio de uma transação = tempo de espera + serviço Os dispositivos podem ser modelados com um único parâmetro Qual o tempo médio de resposta (espera e serviço)? Qual o número de processos em espera? Qual o tempo médio de espera para ser atendido pelo sistema? 2
Qual a utilização da CPU? Qual a vazão do disco? Qual o número de processos em fila da CPU? Qual o número de processos em fila da disco? Qual o tempo médio de espera por processo na CPU? Qual o tempo médio de espera por atendimento no disco? Servidor de BD: múltiplas classes Transações podem ter características distintas Grupo de Aplicações (transações) % total Tempo médio CPU (s) No. Médio de E/S Trivial 45 0.04 5.5 Médio 25 0.18 28.9 Complexo 30 1.20 85.0 Qual é o gargalo do sistema? O que acontece se eu trocar a CPU por uma mais rápida? O que acontece se eu colocar mais um disco? Representando toda a carga através de um grupo único perderemos as características reais as quais o servidor é submetido resultados incorretos Solução: Criar Classes de fregueses na RF para representar os diferentes tipos de transações Usos de RF com múltiplas classes Classes de Clientes Demandas heterogêneas de serviço Pedidos que compõem a carga-de-trabalho são organizados em grupos que exibem demandas significativamente diferentes Tipos diferentes da carga-de-trabalho Ex: transações e processamento em lote (batch) Objetivos de serviço diferentes Representar com mais exatidão o sistema a ser modelado Classes Abertas: Número ilimitado de clientes no sistema Classes Fechadas: Número de clientes no sistema é limitado e conhecido 3
Classes de Clientes Classe aberta Intensidade da carga de trabalho especificada por taxa de chegadas Número médio de transações que chegam por unidade de tempo Quantidade ilimitada de fregueses no sistema Vazão é parâmetro de entrada Se a taxa de chegada é igual à vazão o sistema está em equilíbrio Um modelo de classe aberta exige que sejam configurados Taxa de chegada Tempo de serviço de cada um dos recursos Classes de Clientes Classe fechada Intensidade da carga de trabalho é especificada pela população de fregueses Número de requisições que competem pelos recursos depende da quantidade de clientes Número de fregueses no sistema é conhecido e limitado Vazão é parâmetro de saída Um modelo de classe aberta exige que sejam configurados Número de fregueses Tempo de serviço de cada um dos recursos Tipos de Modelos Modelo Misto para servidor BD Modelos de Redes Abertos Composto apenas por clientes de classes abertas Modelos de Redes Fechados Composto apenas por clientes de classes fechadas Modelos de Redes Mistos Composto tanto por clientes de classes abertas quanto fechadas Tipos de recursos Tipos de Recursos Delay resource: Representa apenas tempo gasto pelo cliente Recursos sem fila e dedicados Load dependent resource: Recursos que a taxa de serviço dependem da carga de trabalho (LAN) Load independent resource: Recursos com taxa de serviço constante (CPU, Disco) 4
SBD: Bloqueio Bloqueio (Rejeição, Perda) Para garantir Tempo Resposta (TR) para usuários, temos que limitar Nº de transações ao BD Controle de congestionamento ou de admissão (max W transações) Ex: Nº máximo de conexões TCP em servidor Web Ao chegar, transação que encontra sistema com W transações ou espera ou vai embora (perda) Vazão = Taxa de Chegadas x (1-Prob. Rejeição) Não necessariamente igual à taxa de chegadas SBD com controle de admissão SBD: Contenção de software Suponha SBD multithreaded Cada thread atende a uma transação por vez Máximo Nº de threads (m Max ) Nº de threads ótimo? Contenção de software (thread) X contenção física (CPU, disco) Tempo de Resposta pode crecer ou cair em função de m, dependendo do fator dominante (contenção de software ou física) TR vs. m (Nº threads) para λ 1 <λ 2 SBD: Posse de recursos simultâneos Suponha que transações necessitem fazer um lock na BD antes de fazerem atualização Quando conseguir um lock, a transação precisará de usar a CPU ou disco Posse de recursos simultâneos 5
Ilustração de posse de recursos simultâneos RF com posse de recursos simultâneos SBD: Mudança de classe Disciplinas de enfileiramento Suponha que antes de ter sua transação processada no BD, um usuário tenha que passar pela etapa de autenticação uso intensivo de criptografia, exigindo muita CPU Demanda de serviço varia muito, dependendo da etapa Modelo: freguês faz mudança de classe ao mudar de uma fila para outra p i,r,j,s = probabilidade do freguês classe r mudar para classe s ao migrar da fila i para a j Ex: SBD quer dar prioridade à transações com SLA FCFS serviço por ordem de chegada LCFS atendimento como uma pilha Prioridade estática, dinâmica (quebra de impasse por FCFS) Round Robin (RR) fatia de tempo ou quantum (escalonamento da CPU em SO) Processor Sharing (PS) Limite de RR quando fatia de tempo tende a zero (equivalente a n transações em servidor único: cada uma vez recursos n vezes mais lento) Outras: LCFS- Preemptive Resume, aleatória,... Definição mais formal de Modelos de RF Coleção de K filas interconectadas Fila inclui a fila de espera + recurso que fornece serviço para os fregueses Pode ser aberta, fechada ou mista dependendo das classes de fregueses Soluções destas RFs mais adiante no programa Parâmetros de entrada para um modelo RF Intensidade da carga-de-trabalho (taxa de chegadas para classes abertas e população de fregueses para fechadas) Demandas por serviço (tempo médio de serviço total) Soluções para um modelo Primeiro, definir claramente no modelo: Parâmetros ou características do sistema Entradas Saídas (medidas de interesse) Simulação Análise Matemática O Modelo pode ajudar também com medição 6