Você está na página 1de 30

Análise do Valor Médio

(Mean-Value Analysis)

Alexandre Magno de Sousa


Engenharia de Computação
Departamento de Computação e Sistemas
Sumário


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

O tempo de resposta irá degradar por um fator de 6.76/1.406 = 4.8


Análise de Redes de Filas Abertas
● 2ª) Modificação altera VB, SCPU e SB:
V B =0.5×8=4
S CPU =1.3×0.01=0.013⇒ DCPU =0.208 s
S B=1.1×0.03=0.033⇒ D B =4×0.033=0.132 s

U CPU = X 0 DCPU =3×0.208=0.624


U A = X 0 D A =3×0.14=0.42
U B = X 0 D B =3×0.132=0.396

RCPU =S CPU /(1 – U CPU )=0.013/(1 – 0.624)=0.0346 s


R A =S A (1 – U A )=0.02/(1 – 0.42)=0.0345 s
R B =S B /(1 – U B )=0.033/(1 – 0.396)=0.0546 s
R=16 × 0.0346+7× 0.0345+4 × 0.0546=1.013 s
O tempo de resposta irá melhorar em (1.406-1.013)/1.406 = 28%
Análise de Redes de Filas Abertas

3ª) Somente um disco (Disco A):
V B =0
V A =7+8=15
D CPU =0.16 s(como antes)

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

RCPU =S CPU /(1 – U CPU )=0.01/(1 – 0.48)=0.0192 s


R=S A /(1 – U A )=0.02/(1 – 0.90)=0.2 s

R=16× 0.0192+15 × 0.2=3.31 s


O tempo de resposta irá degradar por um fator de 3.31/1.406 = 2.35
Análise de Redes de Filas Fechadas


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

R=RCPU V CPU + R A V A + R B V B =0.125×16+0.3×10+0.2×5=6


X 0= N /(R+ Z )=1 /(6+ 4)=0.1

N CPU = X 0 RCPU V CPU =0.1×0.125×16=0.2


N A= X 0 R A V A=0.1×0.3×10=0.3
N B = X 0 R B V B =0.1×0.2×5=0.1
Análise de Redes de Filas Fechadas

Iteração 2, para N = 2:
RCPU =S CPU ×(1+ N CPU )=0.125×(1+0.2)=0.15
R A =S A×(1+ N A )=0.3×(1+0.3)=0.39
R B =S B ×(1+ N B )=0.2×(1+0.1)=0.22

R=RCPU V CPU + R A V A + R B V B =0.15×16+0.39×10+0.22×5=7.4


X 0= N /(R+ Z )=2/(7.4+4)=0.175

N CPU = X 0 RCPU V CPU =0.175×0.15×16=0.421


N A= X 0 R A V A=0.175×0.39×10=0.684
N B = X 0 R B V B =0.175×0.22×5=0.193
Análise de Redes de Filas Fechadas
Análise de Redes de Filas Fechadas

Análise do Valor Médio aproximado: MVA é um
algoritmo recursivo, o cálculo do desempenho de N
tarefas requer o conhecimento de N – 1 tarefas.


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

R=RCPU V CPU + R A V A + R B V B =0.92×16+2.20×10+1.47×5=44


X 0= N /(R+ Z )=20/(44+4)=0.42

N CPU = X 0 RCPU V CPU =0.42×0.92×16=6.11


N A= X 0 R A V A=0.42×2.20×10=9.17
N B = X 0 R B V B =0.42×1.47×5=3.06

Variação máxima no tamanho da fila:
Δ N =max {∣6.67 – 6.11∣,∣6.67 – 9.17∣,∣6.67 – 3.06∣}
Δ N =max {∣0.56, 2.5, 3.61∣}=3.61 > 0.01
Análise de Redes de Filas Fechadas
Bibliografia


JAIN, Raj. The Art of Computer System
Performance Analysis. EUA: John Wiley &
Sons, 1991.
– Capítulo 34.

Você também pode gostar