Desempenho e filas de espera
Atrasos, débito, produto banda-atraso, lei de Little e modelos M/M/1 e M/D/1.
Um pacote de 1500 bytes precisa de 1,2 ms para entrar numa ligação de 10 Mbit/s, mas pode esperar muito mais do que isso pela sua vez. O débito mede bits por segundo e o atraso mede quanto tempo o pacote demora; aumentar o primeiro não elimina propagação nem espera.
Atraso de um salto
mede processamento e mede espera pela saída; é o comprimento do pacote, o débito da ligação, a distância e a velocidade de propagação. é o tempo de transmissão, até sair o último bit, e é o tempo de propagação, até um bit atravessar a distância. Usa bits e bit/s na primeira fração, metros e m/s na segunda.
Exemplo. Pacote de 1500 bytes, ligação de 10 Mbit/s, distância de 100 km e velocidade m/s. Transmissão ms; propagação ms. Sem fila nem processamento, o último bit chega em 1,7 ms.
Com três ligações store-and-forward de 10, 20 e 5 Mbit/s, a transmissão de um pacote soma ms; acrescenta a propagação de cada ligação. Para muitos pacotes, existe paralelismo, por isso não multipliques o atraso do primeiro pelo número de pacotes.
Débito e bits em trânsito
Sem tráfego concorrente ou outras limitações, o débito sustentado de um fluxo não ultrapassa o menor débito do percurso. Um caminho de menor custo de encaminhamento não é necessariamente o caminho de maior débito: o custo pode representar distância, política ou o inverso da capacidade.
O produto banda-atraso conta bits que cabem numa ligação durante a propagação num sentido. Para dimensionar uma janela de transporte usa-se frequentemente , porque a confirmação faz a viagem de ida e volta. Confirma qual destas definições o enunciado pede.
A 100 Mbit/s com RTT de 40 ms, Mbit, ou 500000 bytes. Uma janela de apenas 100000 bytes limita idealmente o débito a MB/s, ou 20 Mbit/s, mesmo antes de considerar perdas e cabeçalhos.
Lei de Little
Num sistema estável, a média presente satisfaz:
Se chegam 200 pacotes/s e cada pacote passa em média 30 ms no sistema, pacotes. Se a fila admite perdas, a taxa admitida pode diferir da taxa oferecida.
Chegadas Poisson
Um processo Poisson de taxa modela chegadas aleatórias. O número de chegadas num intervalo de duração satisfaz:
A taxa pacotes/s não significa que chegue um pacote exatamente a cada 50 ms. Num intervalo de 0,1 s, a contagem média é , mas a probabilidade de zero chegadas é . A probabilidade de pelo menos uma é .
As contagens em intervalos sem sobreposição são independentes e os tempos entre chegadas são exponenciais, de média . Uma sequência regularmente espaçada com a mesma taxa não tem essas propriedades.
A notação de Kendall resume o modelo em três símbolos, A/S/c: A descreve as chegadas, S o serviço e c o número de servidores. M significa sem memória, D valores constantes e G uma distribuição geral. Na secção seguinte, M/M/1 fixa Poisson nas chegadas e serviço exponencial; a página seguinte troca o serviço para determinístico ou geral, mantendo a mesma convenção de letras.
M/M/1: hipóteses e fórmulas
O modelo assume chegadas Poisson de taxa , serviço exponencial de taxa , um servidor e espera ilimitada. A taxa mede pacotes por segundo com servidor sempre ocupado. O serviço médio dura . A carga é . As médias seguintes exigem :
e incluem o serviço; e contam só a fila, logo e . O servidor está ocupado uma fração do tempo; .
Exemplo. Comprimento médio de 1000 bytes e ligação de 1 Mbit/s dão serviço médio de 8 ms, logo pacotes/s. Para , , ms, ms, e . O comprimento precisa de variar de forma compatível com o serviço exponencial para este modelo ser literal.
Se multiplicares e por dez, a carga e mantêm-se mas os tempos dividem-se por dez. Se aumentares só até , as médias divergem. Uma fila real finita perde pacotes em vez de guardar uma quantidade infinita.
Equilíbrio dos estados
O estado conta pacotes no sistema, incluindo serviço. Uma chegada faz passar de a à taxa e uma conclusão faz passar de a à taxa ; em equilíbrio:
Assim . A normalização exige , logo . É aqui que precisamos de , pois sem essa condição a soma geométrica não pode dar uma distribuição estacionária.
No exemplo de carga 0,8, e . O servidor pode estar livre 20% do tempo e ainda haver espera: chegadas aleatórias não se distribuem uniformemente pelos instantes livres. Numa D/D/1 com serviço constante e chegadas regularmente espaçadas por um intervalo maior que o serviço, um sistema inicialmente vazio não acumula espera.
Fila vazia e servidor ocioso
Com nenhum pacote à espera, o servidor pode estar ocioso ou a transmitir um único pacote. Em M/M/1 estável:
Para , o sistema inteiro está vazio com probabilidade 0,2, mas a fila de espera está vazia com probabilidade . A palavra «fila» pode designar informalmente todo o sistema num enunciado; indica sempre se a contagem inclui serviço antes de escolher .
Chegadas periódicas e perdas
Um pacote de 1000 bytes demora 4 ms numa ligação de 2 Mbit/s. Se o agregado chegar exatamente a cada 5 ms, o serviço termina antes da chegada seguinte. Partindo vazio, não há espera nem perdas, mesmo com capacidade total para apenas um pacote.
A taxa é 200 pacotes/s e a carga 0,8. Com a mesma taxa média, mas chegadas Poisson e serviço exponencial, uma M/M/1/B de capacidade total um tem estados 0 e 1. O bloqueio é , cerca de 44,44%. Não se pode transferir esse valor para as chegadas periódicas.
A regularidade precisa de valer para o agregado. Quatro fontes que enviem cada uma a cada 20 ms podem estar alinhadas e entregar quatro pacotes simultaneamente. Com um lugar total, só um entra em cada grupo e três perdem-se, embora a taxa agregada continue a ser 200 pacotes/s. Média e carga iguais não fixam a distribuição das chegadas.
M/D/1 não é M/M/1
Com chegadas Poisson, serviço constante, um servidor e fila FIFO ilimitada sem preempção, usa M/D/1. As médias exigem :
Nos números anteriores, ms e ms. A mesma carga não determina o mesmo atraso: a variabilidade do serviço conta. Para M/G/1 com a mesma disciplina FIFO, serviços independentes e identicamente distribuídos, independentes das chegadas, a fórmula de Pollaczek-Khinchine usa o segundo momento finito do serviço, . Não é uma fórmula universal para qualquer disciplina de fila.
Multiplexagem estatística e capacidade reservada
Retoma os pacotes de 1000 bytes numa ligação de 1 Mbit/s, agora com duas fontes Poisson independentes de 40 pacotes/s cada e comprimentos exponenciais independentes. Juntar os fluxos dá pacotes/s. A ligação comum serve a pacotes/s.
Se reservarmos metade da capacidade para cada fonte, cada fila recebe 40 pacotes/s e serve a 62,5 pacotes/s. A carga é igual nas duas opções, , mas os tempos de serviço não são iguais:
| Organização | Serviço médio | Tempo médio no sistema |
|---|---|---|
| Fila comum, capacidade inteira | 8 ms | ms |
| Uma fila por fonte, metade da capacidade | 16 ms | ms |
Quando uma fonte fica sem dados, a fila comum permite à outra aproveitar toda a ligação, enquanto a reserva mantém capacidade indisponível para a outra fonte mesmo quando não é usada. Esta comparação corresponde ao modelo de partilha dos slides; a conta de TDM trata a capacidade atribuída como serviço a débito reduzido, sem modelar separadamente a fase das ranhuras.
Experimentar a carga
O gráfico calcula médias teóricas. Mantém o exemplo de pacotes/s, serviço médio de 8 ms, e permite mudar a carga. O marcador começa em 80%. Compara a espera M/M/1 e M/D/1 na mesma carga; os valores de sistema somam também os 8 ms de serviço.
λ = 100 pacotes/s; serviço médio = 8 ms.
Tempo médio em fila (ms). M/M/1: traço contínuo; M/D/1: tracejado.
A 100%, estas filas infinitas não têm equilíbrio estacionário. As curvas mostram até 99%; aproximar a carga de 100% faz a espera crescer sem limite.
M/M/1: fila 32,0 ms, sistema 40,0 ms. M/D/1: fila 16,0 ms, sistema 24,0 ms.
Aproximar de 1 aumenta muito a espera: a 90% de carga, M/M/1 dá 72 ms em fila; a 99%, dá 792 ms. Os 8 ms de serviço não mudam. A folga média de capacidade não impede chegadas próximas de acumularem pacotes.
Exercícios
Somar transmissão e propagação
1000 bytes, R=2 Mbit/s, D=200 km, v=2 ×10^8 m/s. Sem processamento nem fila, qual o atraso em ms?
Pista
Converte bytes em bits e km em metros antes de somares.
Calcular serviço, espera e ocupação
Uma saída de router é modelada por M/M/1 ilimitada, FIFO. A capacidade é 512 kbit/s, chegam 50 pacotes/s e o comprimento é exponencial, de média 1024 bytes. Verifica a estabilidade e calcula serviço médio, tempo médio em fila, tempo médio no sistema e os números médios na fila e no sistema. Confere ambas as aplicações de Little.
Pista
Solução
Cada pacote tem em média 8192 bits, por isso o serviço médio é s e pacotes/s. A carga é .
O tempo no sistema é s. A espera é ms. Little dá pacotes e . A diferença 0,8 é a ocupação média do servidor, que coincide com a carga. Estes valores são médias, não uma exigência de existirem 3,2 pacotes num instante.
Confere a tua resposta:
- Obtenho mu=62,5 pacotes/s e rho=0,8.
- Distingo 16 ms de serviço, 64 ms de fila e 80 ms no sistema.
- Aplico Little às duas fronteiras.
Dimensionar uma saída pela ocupação
Doze portas de entrada encaminham cada uma 200 kbit/s para a mesma porta de saída, com pacotes de 1000 bytes e chegadas Poisson. A saída é M/M/1. Que capacidade dá uma ocupação média de 80%? Qual o atraso médio? Explica por que a ocupação fixa a capacidade sem medir diretamente o débito.
Pista
Solução
O agregado é kbit/s, ou 300 pacotes/s. Com , a saída precisa de kbit/s, servindo pacotes/s. O atraso médio é ms. A ocupação liga o tráfego medido à capacidade desconhecida através de .
Confere a tua resposta:
- Somo o tráfego oferecido das doze portas.
- Inverto a ocupação para obter a capacidade da saída.
- Aplico M/M/1 ao atraso médio com as taxas em pacotes/s.
Reconhecer perda nula com chegadas regulares
Nas condições do exercício anterior, os pacotes passam a ter tamanho constante e o intervalo entre chegadas consecutivas também é constante. A fila da saída tem dois buffers, capacidade para dois pacotes. Qual a probabilidade de perda de pacotes?
Pista
Compara o serviço com o intervalo entre chegadas.
Solução
O serviço demora ms e as chegadas espaçam-se ms. Cada pacote termina antes do seguinte, a fila nunca acumula e a perda é 0. O mesmo tráfego médio em Poisson perderia pacotes; a regularidade muda o resultado.
Comparar capacidade partilhada e dividida
Duas fontes Poisson independentes geram 40 pacotes/s cada, com comprimentos exponenciais independentes de média 1000 bytes. Compara: uma fila comum e ligação de 1 Mbit/s; duas filas separadas, uma por fonte, cada uma com 0,5 Mbit/s. Calcula carga e tempo médio no sistema em cada opção. Que muda se duplicarmos todas as taxas e capacidades, mantendo os comprimentos?
Pista
Solução
Na fila comum, e pacotes/s. A carga é 0,64 e ms. Nas filas separadas, cada uma tem e , a mesma carga 0,64, mas ms.
A ligação comum serve cada pacote à capacidade inteira e aproveita a capacidade que a outra fonte não usa. A reserva de metade aumenta o tempo de serviço mesmo quando a outra fila está vazia. Duplicar taxas e capacidades conserva as cargas e as ocupações médias de cada opção e divide os tempos por dois. Isto depende das hipóteses dadas, não é uma promessa para qualquer tráfego.
Confere a tua resposta:
- Somo as chegadas na fila comum.
- Divido a capacidade no cenário reservado.
- Obtenho a mesma carga e atrasos diferentes.
- Ao escalar ambas as taxas, mantenho N e divido T por dois.