Escolar Documentos
Profissional Documentos
Cultura Documentos
(Mean-Value Analysis)
●
Análise de Redes de Filas Abertas.
●
Análise de Redes de Filas Fechadas:
– Análise do Valor Médio (MVA) exato.
– Análise do Valor Médio (MVA) aproximado.
The man who makes no mistakes does not
usually make anything.
— Bishop W. C. Magee
Análise de Redes de Filas Abertas
●
Rede de filas abertas são utilizadas para modelar
sistemas de processamento de transações (e.g. sistemas
de reserva de passagens e bancários).
●
A chegada das transações são modeladas como um
processo de Poisson com taxa de chegada média λ.
●
Todos os recursos em um sistema computacional podem
ser modelados como centro de serviço ou como Delay
centers.
Análise de Redes de Filas Abertas
●
Tempo de residência: total do tempo gasto por uma
tarefa em um centro, incluindo tempo de fila.
Ri = Si(1 + Ni)
● Uma tarefa em sua chegada no i-ésimo recurso, vê Ni
tarefas no sistema e espera SiNi unidades de tempo
mais o tempo de serviço para completá-lo: Si + SiNi
●
Não é uma Lei Operacional, assume-se que o serviço é
memoryless e não é operacionalmente testável.
Análise de Redes de Filas Abertas
●
Assumindo equilíbrio de fluxo:
X = λ
●
Pela Lei do Fluxo Forçado, o throughput do i-ésimo
recurso é:
Xi = X0Vi
●
Pela lei da Utilização, a utilização do i-ésimo
recurso é:
Ui = XiSi = X0ViSi = λDi
Análise de Redes de Filas Abertas
●
Pela Lei de Little, o tamanho da fila no i-ésimo
recurso é:
Ni = XiRi = XiSi(1 + Ni) = Ui(1 + Ni)
ou Ni = Ui/(1 - Ui)
● Substituindo a expressão de Ni em Ri:
Ri = Si/(1 - Ui)
●
Para Delay center, tarefas não experimentam fila:
Ri = Si, assim, Ni = RiXi = SiX0Vi = X0Di = Ui
Análise de Redes de Filas Abertas
●
Exemplo: seja um sistema com uma CPU e 2 Discos, A e B.
Medições no sistema distribuído com seis sistemas
clientes realizam requisições ao servidor de arquivos e
produziram as seguintes medições:
– Período de Observação: 3600 segundos
– # de requisições dos clientes: 10800
– Tempo em que a CPU ficou ocupada: 1728 segundos
– Tempo em que o Disco A ficou ocupado: 1512 segundos
– Tempo em que o Disco B ficou ocupado: 2592 segundos
– Operações de I/O no Disco A: 75600
– Operações de I/O no Disco B: 86400
Análise de Redes de Filas Abertas
●
Baseado nessas informações:
– X0 = 10800/3600 = 3 requisições por segundo
– VA = 75600/10800 = 7 visitas por requisição
– VB = 86400/10800 = 8 visitas por requisição
– VCPU = 1 + VA + VB = 1 + 7 + 8 = 16 visitas por requisição
– DCPU = 1728/10800 = 0.16 s de tempo de CPU
– DA = 1512/10800 = 0.14 s de tempo no Disco A por requisição
– DB = 2592/10800 = 0.24 s de tempo no Disco B por requisição
– SCPU = 0.16/16 = 0.01 s por visita a CPU por requisição
– SA = 0.14/7 = 0.02 s por visita ao Disco A
– SB = 0.24/8 = 0.03 s por vista ao Disco B
Análise de Redes de Filas Abertas
●
Utilização do recurso:
U CPU = X 0 D CPU =3×0.16=0.48
U A = X 0 D A =3×0.14=0.42
U B = X 0 D B =3×0.24=0.72
●
Tempo de resposta para cada recurso:
S CPU 0.01
RCPU = = =0.0192 s
(1 – U CPU ) (1 – 0.48)
SA 0.02 SB 0.03
R A= = =0.0345 s R B= = =0.107 s
(1 – U A ) (1 – 0.42) (1 – U B ) (1 – 0.72)
●
Tempo de resposta do servidor:
K
R=∑i=1 V i Ri =16×0.0192+7×0.0345+8×0.107=1.406 s
Análise de Redes de Filas Abertas
●
O modelo pode ser utilizado para responder
questões sobre o impacto de modificações:
– 1ª) Aumentar o número de clientes para 8.
– 2ª) Utilizar um cache para o Disco B com um hit
rate de 50%, embora isso gere um overhead de 30%
na CPU e aumente o tempo de serviço do Disco B em
10%.
– 3ª) Ter um servidor de baixo custo com somente um
disco (Disco A) e direcionar todas as operações de
I/O para ele.
Análise de Redes de Filas Abertas
●
1ª) Aumentar o número de clientes para 8: assumindo que os novos
clientes fazem requisições similares aos dados já mensurados, a
taxa de chegada aumentará por um fator de 8/6.
8 S CPU 0.01
X 0 =3× =4 req / s RCPU = = =0.0278 s
6 (1 – U CPU ) (1 – 0.64)
U CPU = X 0 D CPU =4×0.16=0.64
SA 0.02
U A = X 0 D A =4×0.14=0.56 R A= = =0.0455 s
U B = X 0 D B =4×0.24=0.96 (1 – U A ) (1 – 0.56)
SB 0.03
R B= = =0.75 s
(1 – U B ) (1 – 0.96)
K
R=∑i=1 V i Ri =16×0.0278+7×0.0455+8×0.75=6.76 s
D A =15×0.02=0.3 s
U CPU = X 0 D CPU =3×0.16=0.48
U A = X 0 D A =3×0.3=0.90
●
Análise do Valor Médio exato: permite
resolver QN fechados de maneira similar ao
que é utilizado para QN abertas.
●
Provê o desempenho médio do sistema.
●
Se aplica a QN com uma variedade de
disciplinas de serviço e distribuições de
tempo de serviço.
Análise de Redes de Filas Fechadas
●
Dada uma QN com N tarefas, o tempo de resposta
é dado por:
Ri(N) = Si(1 + Ni(N - 1))
● Ni(N – 1): tamanho médio da fila no i-ésimo
recurso com N – 1 tarefas na rede.
●
O que acontece quando a N-ésima tarefa chega a
rede com N – 1 tarefas: existem Ni(N – 1) tarefas
a frente e ela espera Ni(N – 1)Si unidades de
tempo mais o serviço para completá-la (Si).
Análise de Redes de Filas Fechadas
●
Não é uma Lei Operacional, assume-se que o serviço
é memoryless e não é operacionalmente testável.
●
Com o desempenho para N – 1 tarefas juntamente
com as Leis Operacionais, é possível calcular o
desempenho para N tarefas.
●
Uma vez que o desempenho para N = 0 pode ser
facilmente calculado, o desempenho para um
determinado número de tarefas pode ser calculado
iterativamente.
Análise de Redes de Filas Fechadas
●
Dado o tempo de resposta para um recurso pode ser obtido por:
K
R( N )=∑i=i V i ×Ri ( N )
●
O throughput de sistemas interativos é:
N
X 0 ( N )=
R( N )+ Z
●
O throughput do sistema em termos de tarefas por segundo é:
X i ( N )= X 0 ( N )×V i
●
O tamanho da fila para um recurso com N tarefas é:
N i ( N )= X i ( N ) Ri ( N )= X 0 ( N )V i Ri ( N )
●
Para Delay center, tarefas não experimentam fila:
Ri ( N )=S i
Análise de Redes de Filas Fechadas
●
Exemplo: considere uma QN para um sistema interativo
com 20 terminais em que cada solicitação realiza 10
operações de I/O no Disco A e 5 operações de I/O no
Disco B. O tempo de serviço por operação no Disco A é
300 ms e no Disco B 200 ms. Cada solicitação leva 2 s de
tempo de CPU e o tempo de pensar é de 4 s. Dê uma
analise desse sistema utilizando MVA.
S A=0.3,V A=10 ⇒ D A =3
S B =0.2,V B =5⇒ D B =1
D CPU =2, V CPU =V A +V B +1=16 ⇒ S CPU =0.125
Z =4, N =20
Análise de Redes de Filas Fechadas
●
Inicialização, para N = 0:
N CPU =0, N A=0, N B =0
●
Iteração 1, para N = 1:
RCPU =S CPU ×(1+ N CPU )=0.125×(1+0)=0.125
R A =S A×(1+ N A )=0.3×(1+0)=0.3
R B =S B ×(1+ N B )=0.2×(1+0)=0.2
●
Para pequenos valores de N, esse algoritmo não é
tão caro computacionalmente.
●
Para grandes valores de N, se o desempenho para
valores menores de N não é necessária, seria
melhor evitar essas recursão.
Análise de Redes de Filas Fechadas
●
Diversas técnicas têm sido desenvolvidas com
esse objetivo.
●
Uma delas é a aproximação de Schweitzer.
●
Essa técnica evita a recursão no MVA por
estimar o tamanho da fila com N tarefas e
computar R e X0.
●
O valor computado pode ser usado para
recalcular o tamanho da fila.
Análise de Redes de Filas Fechadas
●
A técnica de Schweitzer é baseada na
hipótese de que se o número de tarefas na
rede aumenta, o tamanho da fila em cada
recurso aumenta proporcionalmente.
Ni(N )
●
Analiticamente: =ai (constante)∀ N
N
●
Isso implica em: N i ( N −1) N i ( N )
=
N −1 N
ou N −1
N i ( N −1)= Ni(N )
N
Análise de Redes de Filas Fechadas
●
Assim, MVA pode ser calculado da seguinte forma:
(
Ri ( N )=S i × 1+
N −1
N
Ni )
● Cada iteração inicia com um valor para o # de tarefas Ni(N) em
vários recursos e finaliza recalculando novos valores N i(N).
●
Se os novos valores não são próximos aos valores do início da
iteração, é necessário continuar as iterações. Se são
suficientemente próximos, é necessário parar.
●
Não existem garantias de que sucessivas iterações o faça
convergir, mas existem provas empíricas da convergência.
Análise de Redes de Filas Fechadas
●
Considerando o exemplo anterior, utilizando aproximação de
Schweitzer quando existem 20 usuários no sistema. O
critério de parada é quando a variação máxima absoluta no
tamanho da fila é menor do que ε = 0.01.
S A=0.3,V A=10 ⇒ D A =3
S B =0.2,V B =5⇒ D B =1
D CPU =2, V CPU =V A +V B +1=16 ⇒ S CPU =0.125
Z =4, N =20
●
Para inicializar o tamanho das filas, assume-se que 20 tarefas
são igualmente distribuídas entre a CPU e os dois discos:
N CPU =N A = N B =20/3 = 6.67
Análise de Redes de Filas Fechadas
●
Iteração 1:
RCPU =S CPU ×(1+ N CPU )=0.125×(1+19/20×6.67)=0.92
R A =S A×(1+ N A )=0.3×(1+19/20×6.67)=2.20
R B =S B ×(1+ N B )=0.2×(1+19/20×6.67)=1.47
●
JAIN, Raj. The Art of Computer System
Performance Analysis. EUA: John Wiley &
Sons, 1991.
– Capítulo 34.