Carlos Alberto Kamienski ([email protected]) UFABC INF-103: Avaliação de Desempenho Definição de Carga de Trabalho Carga de trabalho Uma avaliação de desempenho deve submeter o sistema a uma carga de trabalho que proporcione a observação das métricas em situações onde seja possível gerar conclusões compatíveis com os objetivos propostos 2 Tipos de Cargas de Trabalho Sintética Carga de trabalho gerada artificialmente para simular/emular uma carga real Fornece flexibilidade ao sistema mas pode não ser representativa Registros de cargas reais passadas (traces) Representam uma carga real, mas de um momento estático no sistema Carga real (sistema operante) Não depende de geração de carga sintética Vantagem e desvantagem 3 Nível de detalhe Como se define o nível de detalhe da carga de trabalho? Alternativas Tipo de requisição (request) mais freqüente Freqüência dos tipos de requisições Arquivos com dados reais medidos (traces) Demanda média por recursos Distribuição da demanda por recursos 4 Representatividade A carga deve ser representativa de uma aplicação ou sistema real A carga de trabalho deve levar em consideração alguns aspectos Taxa de chegada Ex: quantas chamadas VoIP chegam por minuto? Demanda por recursos Ex: quais os usuários envolvidos em cada ligação? Uso dos recursos Ex: qual o tempo de duração da ligação? 5 Sazonalidade Diferença nesses parâmetros em momentos diferentes Horas do dia Períodos do dia (manhã, tarde, noite) Dias da semana Dias do mês Mês Ocorrências de eventos importantes 6 Nível de carga Uma carga de trabalho deve testar o sistema em condições diferentes Melhor caso: o sistema dá conta de atender a todas as requisições em tempo conveniente Pior caso: o sistema não consegue atender a maioria das requisições de maneira satisfatória Caso típico: carga de trabalho observada em sistemas reais em determinado momento Definir fatores e níveis para representar esses casos (podem ser mais do que 3 níveis) 7 Como definir o nível da carga Iniciar com a intuição e/ou registros do sistema Ex.: Taxa de chegada (requisições por segundo) Pode haver registros (logs) com níveis de cargas reais as quais o sistema é submetido Pode haver conhecimento se essas cargas são altas, médias ou baixas Se não houver informação do sistema, compatibilizar inicialmente a carga com a capacidade do sistema Definir níveis: ex.: 10, 30, 50, 100 req/s Realizar experimentos preliminares para determinar os níveis adequados 8 Repetição do experimento A carga de trabalho deve ser escolhida de maneira a permitir a repetição dos experimentos sem muita variação Embora uma carga sintética deva ser aleatória, ela precisa ser reproduzível Uso de números pseudo-aleatórios Em geral, sistemas diferentes devem ser comparados usando a mesma carga 9 Carlos Alberto Kamienski ([email protected]) UFABC INF-103: Avaliação de Desempenho Carga de Trabalho