Leis Operacionais de Desempenho Magnos Martinello Universidade Federal do Espírito Santo - UFES Departamento de Informática - DI Laboratório de Pesquisas em Redes Multimidia - LPRM
Conceitos: Um Recurso e Sua Fila Si : tempo de serviço Wi : tempo de espera recurso: CPU, disco, rede, etc.
Demanda de Serviço Demanda de Serviço (Service Demand) = Tempo de Serviço Total Sobre Todas as Visitas ao Recurso Si: Service time at visit I D: Service demand = S1 + S2 + + Sk
Exemplo de Um Servidor de Banco de Dados: Carga de Trabalho do Tipo "Aberta" 2 Transações no BD fazem Uso da CPU e 3 Elementos que entram na rede são chamados clientes depois acessam o disco (ex. Processamento SQL e acesso ao disco contendo o bloco desejado)
Tempo de Espera na Fila Esperana Fila da CPU = w1 + w2 + w3 Esperana Fila do Disco = w4 + w5
Tempo de Service Demand Service demand na CPU = s1 + s2 + s3 Service demand no disk = s4 + s5
Tempo de Permanência Tempo de Permanência (Residence) na CPU = w1 + s1 + w2 + s2 + w3 + s3 Tempo de Permanência (Residence) na disco = w4 + s4 + w5 + s5
Tempo de Resposta Tempo de Resposta = Tempo de Permanênciana CPU + Tempo de Permanência no Disco
Exemplo de Service Demand Imagine requisições a um website utilizam dois discos. Os tempos de serviço em cada disco para cada I/O realizado por uma única requisição é dado na tabela abaixo: Service Demand Disco 1 Service Demand Disco 2
Questões Práticas Qual a unidade usada para medir demanda de serviço? Demanda de serviço aumenta em função da carga no sistema? Qual a relação entre tempo de serviço e demanda de serviço? Qual a relação entre tempo de resposta, tempo de serviço e tempo de espera emfila? Qual a relação entre tempo de permanência e o tempo de resposta?
Análise Operacional Taxa de Chegadas Vazão TPUT Tempo de Serviço No. de Visitas
Problema de Motivação Suponha que em um período de observação de 1 minuto (60 seg), um único recurso (ex. a CPU) é monitorada como estando ocupada por 36 seg. Um total de 1800 transações são observadas chegando ao sistema. O total de transações concluídas é 1800 transações (ex, mesmo número de transações que chegaram, foram concluídas no período de observação). Qual é o desempenho desse sistema? (ex. Tempo médio de serviço por transação, a utilização do recurso, a vazão (tput) do sistema?
Variáveis Operacionais T: tempo total do período de observação K: número de recursos no sistema B i : Tempo total ocupado do recurso i no período de observação T A i : Número total de requisições (ex. Chegadas) para recursoi no período de observação T A 0 : Número total de requisições ao sistema no período de observação T C i : Número total de serviços completados no recurso i no período de observação T C 0 : Número total de requisições completadas no sistema no período de observação
Problema de Motivação Suponhaqueem um período de observação de 1 minuto (60 seg), um único recurso (ex. a CPU) é monitorada como ocupado por 36 seg. Um total de 1800 transações são observadas chegando ao sistema. O total de transações concluídas é 1800 transações (ex, mesmo número de transações que chegaram, foram concluídas no período de observação). T = 60 sec K = 1 recurso B 1 = 36 seg A 1 = A 0 = 1800 trans. C 1 = C 0 = 1800 trans.
Derivações de Quantidades a partir das VariáveisOperacionais S i : Tempo médio de serviço para cada tarefa completa no recursoi U i : Utilização do recursoi no período de observação T X i : Vazão (Throughput, tarefas completadas por unidade de tempo) no recursoi X 0 : Vazão total do sistema λ i : taxa de chegada (ex. Chegadas por unidade de tempo) no recurso i V i : fração média de visitas por requisição no recursoi S i = B i / C i U i = B i / T X i = C i / T X 0 = C 0 / T λ i = A i / T V i = C i / C 0
Problema de Motivação Suponhaqueem um período de observação de 1 minuto (60 seg), um únicorecurso (ex. a CPU) émonitoradacomoestandoocupa dapor 36 seg. Um total de 1800 transaçõessãoobservadaschega ndoaosistema. O total de transaçõesconcluídasé 1800 transações (ex, mesmonúmero de transaçõesquechegaram, foramconcluídas no período de observação). T = 60 sec K = 1 recurso B 1 = 36 seg A 1 = A 0 = 1800 trans. C 1 = C 0 = 1800 trans. S 1 = B 1 /C 1 = 36/1800 = 1/50 segportransação U 1 = B 1 /T = 36/60 = 60% λ 1 = A 1 /T = 1800/60 = 30 tps X 0 = C 0 /T = 1800/60 = 30 tps
Lei do Fluxo Forçado (Forced Flow Law) Relaciona o throughput do sistema com o throughput individual V k = fração de visitas ao recurso k V k C k / C Ex: Durante período de medição, 10 requisições foram servidas e houve 150 acessos ao disco 1: V disco_1 = 150/10 = 15 acessos/requisição
Lei do Fluxo Forçado (Forced Flow Law) Os throughputs (fluxos de clientes) em todas as partes do sistema devem ser proporcionais umas as outras X k = V k X
Exemplo 1 Cada job em um sistema de processamento batch requer uma média de 6 acessos a um disco específico A. Através de medições, você conclui que o disco A em questão está servindo uma média de 12 acessos dos jobs batch a cada segundo. Qual o throughput do sistema de processamento? X A = 12 V A = 6 X A = V A X X = X A / V A X = 12/6 = 2 jobs/s
Exemplo 2 Você fica sabendo que um outro disco B está servindo 18 requisições de jobs batch por segundo. Quantos acessos ao disco B cada job realiza, em média? X B = 18 X = 2 X k = V k X V k = X k / X V k = 18/2 = 9 acessos
Exemplo 3 Determine o tempo médio de resposta de um sistema interativo com as seguintes características conhecidas: 25 terminais Think time médio de 18 segundos Cada interação faz 20 acessos ao disco, em média Disco está ocupado em média 30% do tempo, durante medição Tempo de serviço médio por acesso ao disco igual a 25mseg Sistema interativo carga interativa modelo fechado População de clientes: N = 25 e Z = 18 Número médio de visitas ao disco V disco = 20 Utilização do disco U disco = 0.30 S disco = 0.025 Qual o valor de R?
Solução R = N / X Z (Lei do Tempo de Resposta) Precisamos do valor de X (thpt do sistema)? X disco = V disco X (Lei do Fluxo Forçado) Como calcular X disco? U disco = X disco S disco (Lei da Utilização) X disco = U disco / S disco = 0.30 / 0.025 = 12 acessos/seg X = X disco / V disco = 12 / 20 = 0.6 interações/seg R = N / X Z = 25 / 0.6 18 = 23.7 segs
Demanda por Serviço em um Dispositivo Os requisitos de serviço em cada dispositivo podem ser especificados de duas maneiras Pelo número de visitas que um cliente faz ao dispositivo uma vez no sistema V k + tempo de serviço por visita S k ou Demanda total por serviço do dispositivo D k D k V k S k
Demanda por Serviço em um Dispositivo Se um job faz em média 20 visitas a um disco e requer, em cada visita, um tempo médio de serviço de 25 ms. V k = 20 S k = 25 D = 20 25 = 500 ms A demanda média por serviço no disco é 0.5 seg Demanda total de um job por todos os recursos do sistema D = K k = 1 D k
Lei da Utilização Revisitada U = XS U k = X k S k = XV k S k = XD k É mais fácil medir D k do que V k e S k D k = B k / C = U k T / C
Exemplo 4 Suponha que um sistema de timesharing com 3 discos tenha memória limitada: pode ocorrer swapping e portanto, antes de competir pelos recursos do sistema central, uma interação deve competir por uma partição da memória. O sistema foi observado e medido: número médio de usuários : 23 tempo de resposta médio percebido por um usuário: 30 s throughput do sistema de timesharing: 0.45 interacoes / s número médio de requisições ocupando memória: 1.9 demanda média por CPU para cada interação: 0.63 s N = 23 R = 30 X = 0.45 N in_mem = 1.9 D CPU = 0.63
Exemplo 4: Modelo de Filas
Exemplo 4 Qual o think time médio de um usuário? R = N/X - Z Z = N/X - R = 23/0.45 30 = 21 segundos Em média, quantos usuários estão tentando obter serviço (não estão em think time)? Aplicar Lei de Little na Caixa 3: N want_mem = XR = 0.45 30 = 13.5 usuários Em média, quantos estão esperando na fila de memória? N mem_queue = N want_mem N in_mem = 13.5 1.9 = 11.6 usuários
Exemplo 4 Em média, quanto tempo passa desde a aquisição de memória até o término de uma interação? Aplicar Lei de Little na Caixa 2: N in_mem = XR in_mem R in_mem = N in_mem / X = 1.9 / 0.45 = 4.2 s Qual o tempo médio gasto na fila de memória? R mem_queue = R R in_mem = 30 4.2 = 25.8 segundos Qual a utilização de CPU pela carga de timesharing? Aplicar Lei da Utilização na Caixa 1: U CPU = XD CPU = 0.45 0.63 = 28%
Premissa do Equilíbrio de Fluxos Durante um período de observação, o número de chegadas no sistema é igual ao número de saídas A = C logo λ = X
Exemplo 5 Qual a utilização total de CPU? Assumir Equilíbrio de fluxo: X = λ Aplicar Lei da Utilização para cada classe, separadamente U comp,cpu = X comp D comp,cpu = 480 / 3600 2 = 27% U exec,cpu = X exec D exec,cpu = 120 / 3600 11.9 = 40% U edit,cpu = X edit D edit,cpu = 600 / 3600 0.5 = 8% U CPU = 75% Se U CPU < 100%, a premissa do equilíbrio de fluxo é razoável. Deve-se analisar as classes independentemente sem contabilizar as interferências (so faz sentido se U CPU < 100%).
Leis Fundamentais Utilizando as leis fundamentais em conjunto, é possível estimar métricas de desempenho do sistema como um todo (e.g. tempo de resposta do sistema), conhecendo métricas de carga de um único dispositivo do sistema (vide Exemplo 3)
Leis Fundamentais: Sumário Lei de Little N = XR Lei da Utilização U = X S = XD k k k k Lei do Tempo de Resposta R = N/X - Z Lei do Fluxo Forçado X k = V k X
Relações Adicionais λ k A k / T X k C k / T U k B k / T S k B k / C k U k T / C k V k C k / C D k V k S k B k / C U k T/ C
Exercício 1 Seja um sistema de timesharing com dois discos. Sabe-se que as probabilidades de um job completando serviço na CPU fazer um acesso ao disco A, ao disco B ou de retornar aos terminais são 0.80, 0.16 e 0.04, respectivamente. Além disto, foram medidos think time médio do usuário de 5 segundos, tempos médios de serviços dos disco A e B de 30 e 25 milisegundos, respectivamente, e tempo médio de serviço por visita à CPU de 40 milisegundos. Responda: Se a utilização do disco A é de 60%, qual as utilizações da CPU e do disco B? Se a utilização do disco B é de 10%, qual o tempo de resposta médio quando há 20 usuários no sistema?
Exercício 1 S CPU = 0.040 p 3 = 0.04 S discoa = 0.030 p 1 = 0.80 S discob = 0.025 p 2 = 0.16 Z = 5
Exercício 1 1) Se a utilização do disco A é de 60%, qual as utilizações da CPU e do disco B? S CPU = 0.040 S discoa = 0.030 S discob = 0.025 Z = 5 U discoa = X discoa S discoa X discoa = U discoa /S discoa = 0.60/0.03 = 20 X discoa = XV discoa V discoa =?
Exercício 1 S CPU = 0.040 p 3 = 0.04 S discoa = 0.030 p 1 = 0.80 S discob = 0.025 p 2 = 0.16 X Z = 5
Exercício 1 1) Se a utilização do disco A é de 60%, qual as utilizações da CPU e do disco B? U discoa = X discoa S discoa X discoa = U discoa /S discoa = 0.60/0.03 = 20 X discoa = XV discoa V discoa =? A cada 100 visitas à CPU, 96 permanecem no sistema (discos) e 4 retornam para os terminais 100 visitas à CPU implicam 80 visitas a disco A e 4 interações V discoa = 80/4 = 20 acessos por interação
Exercício 1 1) Se a utilização do disco A é de 60%, qual as utilizações da CPU e do disco B? X discoa = XV discoa X = X discoa / V discoa = 20/20 = 1 inter./seg U discob = X discob S discob = XV discob S discob V discob = 16/4 = 4 acessos por interação U discob = XV discob S discob = 1 x 4 x 0.025 = 0.10 = 10% U CPU = X CPU S CPU = XV CPU S CPU V CPU = 100/4 = 25 acessos por interação U CPU = XV CPU S CPU = 1 x 25 x 0.040 = 1.0 = 100%
Exercício 1 1) Se a utilização do disco B é de 10%, qual o tempo de resposta médio quando há 20 usuários no sistema? U discob = X discob S discob = XV discob S discob = 0.10 V discob = 16/4 = 4 acessos por interação X = U discob / V discob S discob = 0.1 / (4 x 0.025) = 1 inter. /seg R = N/X Z = 20/1-5 = 15 segundos