INF-103: Avaliação de Desempenho Carlos Alberto Kamienski (cak@ufabc.edu.br) UFABC INF-103: Avaliação de Desempenho Teoria das Filas
Modelagem analítica Possibilita explorar um modelo sobre o qual se tem controle Modelos matemáticos simplificados geram resultados rapidamente Técnica barata: lápis, papel e cérebro Muitos pressupostos e abstrações são feitas Pode-se perder o comportamento original Exemplo: sistemas de filas
Teoria das Filas Provê modelos para prever o comportamento de sistemas que oferecem serviço para demandas com taxas de chegadas aleatórias Utilizada para modelar sistemas onde: Clientes chegam para ser atendidos Esperam sua vez de ser atendidos São atendidos e vão embora Sistema telefônico: A. K. Erlang - 1909
Resultados Possíveis Tempo de espera de um cliente Quanto tempo um cliente espera no banco Quanto tempo um pacote passa em um roteador Acúmulo de clientes na fila Qual o tamanho médio da fila do banco Como a fila do roteador se comporta Tempo ocioso/ocupado dos servidores Quanto tempo o caixa fica livre Qual a utilização do roteador Taxa de saída (vazão) Quantos clientes são atendidos por hora Quantos pacotes são encaminhados por segundo
Sistemas de Filas
Modelo de Filas Básico Modela qualquer serviço com: Buffer Servidor(es) Chegadas Saídas Na fila Em Serviço Modela qualquer serviço com: Um ou mais servidores Uma área de espera (buffer) “Clientes” chegam para receber um “serviço” Um cliente que não encontra um servidor livre espera na fila (buffer)
Características de um Modelo de Filas Processo de chegada Distribuição do tempo de serviço Número de servidores Capacidade do sistema Tamanho da população Disciplina de serviço
Processo de Chegada Normalmente é um processo estocástico Necessário saber a distribuição de probabilidade do tempo entre chegadas Normalmente é Exponencial Processo Estacionário A distribuição de probabilidade que descreve a chegada não varia com o tempo (é independente do tempo) Processo Não Estacionário A distribuição varia com o tempo (depende do tempo)
Processo de Chegada tempo decorrido entre as chegadas dos clientes n e n+1 é um processo estocástico Tempos entre chegadas são identicamente distribuídos e têm a mesma média Taxa de chegada = l
Tempo de Serviço Tempo que cada cliente leva para ser atendido Ex: tempo que o cliente do banco passa no caixa Ex: tempo para o roteador encaminhar um pacote Semelhante ao processo de chegada Distribuição de probabilidade para o tamanho das filas depende de: o processo de chegada o tempo de serviço
Tempo de Serviço é tempo que o cliente n passa no servidor é um processo estocástico Tempos de serviço são identicamente distribuídos com uma média comum Taxa de serviço: m
Número de Servidores Representa situações com filas únicas para múltiplos servidores Exemplos: supermercados, bancos, etc. Computadores multiprocessados são exemplos de múltiplos servidores Em redes, freqüentemente há somente 1 servidor (um roteador, hub, switch, etc.) Infinitos servidores também são possíveis Ex: sistema onde o cliente tem atendimento imediato Ex: um “self service”
Capacidade do Sistema Em alguns sistemas de filas, existe limitação física da quantidade de espaço de buffer Ex: memória de um roteador Ex: lista de espera de companhias aéreas Ex: número de cadeiras na sala de espera Se um cliente chega e não há espaço no buffer, ele tem que desistir do serviço Ex: o pacote é descartado! (Drop Tail) Freqüentemente usa-se capacidade infinita A análise é mais fácil quando a fila é grande
Tamanho da População Número total de clientes que podem entrar no sistema Ex: pacotes que podem chegar no roteador Quando o número é grande (ou desconhecido) é mais fácil considerar tamanho infinito
Disciplina de Serviço Modo como os clientes são selecionados para receber o serviço quando há uma fila Ou seja, em redes, maneira como os pacotes são retirados da fila para serem transmitidos Disciplinas comuns: FCFS: First Come, First Served (FIFO) LCFS: Last Come, First Served (LIFO) Prioridade: Clientes com mais prioridade primeiro Circular: Um pouquinho de cada tipo (Round Robin)
Notação de Kendall A/S/NS/B/K/SD Defaults B= , K= , SD=FCFS A,S = Tempo entre chegadas, tempo de serviço M = Exponencial (Markov, Memoryless) Ek = Erlang Hk = Hyperexponential D = Determinístico G = Geral (para todas as distribuições) NS = Número de servidores B = Número de buffers (lugares na fila) K = Tamanho da população SD = Disciplina de Serviço FCFS,FCLS… Defaults B= , K= , SD=FCFS M/M/1 = M/M/1///FCFS
Descrição das filas: Exemplos M/M/1: chegadas Poisson, tempo de serviço exponencial, 1 servidor, buffer infinito, FCFS M/M/m: Igual ao anterior, com m servidores M/G/1: chegadas Poisson, tempo de serviço geral, 1 servidor, buffer infinito
Variáveis Gerais l = (Lambda) Taxa média de chegada t = (Tau) Tempo entre chegadas = 1/ l s = Tempo médio de serviço m = (Mi) Taxa de serviço (vazão ou taxa de saída) = 1/s n = Número médio de clientes no sistema nq = Número médio de clientes na fila ns = Número de clientes recebendo serviço W = Tempo médio de resposta (fila + serviço) W q= Tempo médio de espera na fila r = (Rô) Carga (ou fator de utilização) = l/m = ls
A Chegada e o Comportamento da Fila n=usuários no sistema 3 2 1 t=Tempo t1 1 t2 2 t3 1 t4 3 t5 4 t6 2 t7 3 T 4 n=(área abaixo da curva)/T
Tempo Total (fila+serviço)= W Lei de Little n l m Tempo Total (fila+serviço)= W o número médio de elementos no sistema é igual à taxa de chegada vezes o tempo de permanência no sistema n=W Lei de Little funciona para sistemas no estado estável
Lei de Little – Exemplo 1 Sistema de Telefonia Taxa de chegada l = 100 chamadas por minuto Duração das chamadas (permanência): s = 1/m = 2 minutos Número médio de chamadas simultâneas n = s = 100 x 2 = 200 chamadas
Lei de Little - Exemplo
Lei de Little – Exemplo 2 Uma Loja no Shopping Taxa de chegada l = 10 usuários por hora Tempo que passa dentro da loja (permanência): s = 1/m = 30 minutos = ½ hora Número médio clientes dentro da loja n = s = 10 x ½ = 5 clientes
Lei de Little – Exemplo 3 Um roteador Taxa de chegada l = 3000 pacotes por segundo Tempo que demora para ser encaminhado (serviço): s = 1/m = 2ms = 0.002 segundo Número médio de pacotes dentro do roteador n = s = 3000 x 0.002 = 6 pacotes
Resultados Gerais para Filas M/M/1 M/M/1 é um tipo de fila muito usada na prática Probabilidade de haver exatamente n clientes no sistema: pn = (1 – r) rn r = carga do sistema = l/m Probabilidade de haver n ou mais clientes no sistema: pn = rn Número médio de clientes no sistema: E[n] = r / (1 – r) Tempo médio de resposta (permanência no sistema) W = (1/m) / (1 – r)
Filas M/M/1 - Exemplo Dados de um Roteador: Taxa de chegadas = 400 pacotes por segundo Roteador leva 2 ms para encaminhar pacotes Calcular usando uma fila M/M/1: Número médio de pacotes na fila Probabilidade de descarte no caso de haver espaço para 10 pacotes Qual a probabilidade de um pacote encontrar a fila vazia? Quanto espaço na fila seria necessário para que a taxa de perda fosse inferior a 0,1%?
Filas M/M/1 – Exemplo 1/2 l = 400 pps s = 0.002 s m = 1/s = 1/0.002 = 500 pps r = l/m = 0,8 Número médio de pacotes na fila: E[n] = r / (1 – r) = pacotes no sistema (roteador) Assumindo que tem um pacote “sendo servido”, temos nq=E[n] -1 = 0,8 / (1 – 0,8) – 1 = 3 Probabilidade de descarte (buffer para 10 pacotes): P(mais que 11 pacotes no roteador) pn = rn p12 = r12 = 0,812 = 0,0687
Filas M/M/1 – Exemplo 2/2 Probabilidade de uma fila vazia P[fila vazia] = P[um ou zero pacote em atendimento] = pn = (1 – r) rn P[fila vazia] = (1 - 0.8) r0 + (1 - 0.8) r1 = 0.2 + 0.2*0.8 = 0.36 Buffers para uma perda máxima de 0,01% (0,0001) rn < 10-4 n > logr(10-4) n > log(10-4)/log(0,8) n > 30.95 Resposta: n>31 buffer para 30 pacotes
E se a chegada não for Poisson? Com chegadas Poisson, a agregação de várias fontes de tráfego é suavizada, de acordo com o Teorema Central do Limite (TCL) Quando os tempos em chegadas seguem uma distribuição de cauda pesada (ex: Pareto), a convergência para o TCL é muito mais lenta!
Auto-Similaridade Fenômeno de preservar as principais características de alguma entidade quando observada em escalas distintas (de tempo) Se a realização de um processo estocástico (série temporal) é agregada em escalas de tempo distintas e mantém suas propriedades estatísticas mais importantes (ex: momentos de primeira ou segunda ordem), ela é considerada um processo fractal ou auto-similar
Auto-Similaridade Existem evidências de comportamento auto-similar no tráfego de redes de computadores Conseqüência: filas dos roteadores trabalham com altos níveis de ocupação Pela presença de tráfego em rajadas em várias escalas de tempo Causando alta taxa de perda de pacotes e atraso fim a fim Gerando baixo índice de utilização dos enlaces de comunicação Conhecer a fundo esse fenômeno é vital para o gerenciamento de redes e planejamento de capacidade
Ocupação das filas
Tráfego Auto-Similar
Tráfego Auto-Similar
INF-103: Avaliação de Desempenho Carlos Alberto Kamienski (cak@ufabc.edu.br) UFABC INF-103: Avaliação de Desempenho Teoria das Filas