Vous êtes sur la page 1sur 17

Modelos Probabilsticos

de Desempenho
Profa. Jussara M. Almeida
1 Semestre de 2010

Modelos Probabilsticos
Processos Estocsticos
Processos de Poisson
Filas M/M/1, M/G/1...

Mais genericamente: modelos markovianos


Qual a probabilidade de um sistema estar em um
determinado estado?
Quantos e quais so os estados?
Quais as probabilidades de transio entre pares de
estados?

Modelos Markovianos
Exemplo : Servidor de Banco de Dados
Computador com uma CPU e dois discos rodando
um servidor de banco de dados.
Para manter QoS, apenas 2 usurios no banco
de dados por vez
Um disco 2x mais rpido que o outro
Transao tpica:

10 seg. de CPU
15 seg. no disco rpido (caso arquivo neste disco)
30 seg no disco lento)

Transaes tm igual probabilidade de


encontrar os arquivos requisitados em qualquer
um dos discos

Modelos Markovianos
Exemplo : Servidor de Banco de Dados
Perguntas:
Usurio: Qual o tempo de resposta tpico?
Administrador do sistema: Qual a utilizao
de cada recurso do sistema?
Presidente da companhia: Qual desempenho
do sistema se eu dobrar o nmero de usurios
ativos no sistema
Qual o tempo de resposta se eu tiver que
migrar todos os arquivos do disco mais rpido
para o mais lento?

Construo de Modelos Markovianos


Servidor de Banco de Dados

Definio dos estados: (X,Y,Z)

X = # usurios na CPU
Y = # usurios no disco rpido
Z = # usurios no disco lento
(2,0,0), (1,1,0), (1,0,1), (0,2,0), (0,1,1), (0,0,2)
Outras opes de estados podem ser mais
complicadas

Construo de Modelos Markovianos

Servidor de Banco de Dados

Definio das transies entre estados

Se em estado (2,0,0), um usurio na CPU pode terminar


processamento e ir para disco rpido (estado (1,1,0)) ou para
o disco lento (estado (1,0,1))

Se em estado (1,1,0), ou usurio no disco rpido termina e vai


para CPU (estado (2,0,0)), ou usurio na CPU vai para um dos
discos (estado (0,1,1) ou (0,2,0))

Se em estado (1,0,1), ou usurio no disco lento termina e vai


para CPU (estado (2,0,0)), ou usurio na CPU vai para um dos
discos (estado (0,1,1) ou (0,0,2))

Se ambos usurios no disco rpido/lento (estado


(0,2,0)/(0,0,2)) um usurio termina e vai para CPU (estado
(1,1,0)/(1,0,1))

Se em estado (0,1,1), ou usurio do disco rpido retorna


CPU ( estado (1,0,1)) ou usurio do disco lento retorna CPU
(estado (1,1,0))

Construo de Modelos Markovianos

Servidor de Banco de Dados

Parametrizao: taxas

Se em estado (2,0,0):
CPU ativa atende requisies de usurios taxa de 6
transaes por min (cada uma tem demanda de 10 seg)
Cada transao pode acessar arquivos em qualquer disco com
igual probabilidade: taxa com que usurio migra da CPU para
disco rpido/lento = 3
Peso entre (2,0,0) e (1,0,1) = 3 (= para (2,0,0) e (1,1,0))
Se em estado (1,1,0):
Usurio deixa a CPU a uma taxa 6, metade do tempo indo para
disco lento, metade para disco rpido
(1,1,0) -> (0,2,0) = (1,1,0) -> (0,1,1) = 3
Disco rpido satisfaz requisio a uma taxa de 4 transaes
por minuto (cada uma tem demanda de 15 segundos) :
(1,1,0) -> (2,0,0) = 4

Soluo de Modelos Markovianos

Objetivo: achar as probabilidades a longo prazo de


estar em cada estado particular
Como fazer?

Estado estacionrio independe do estado inicial do


sistema

Utilizar conjunto de equaes de equilbrio lineares

N estados -> N incgnitas (probabilidades) -> N equaes

Equaes derivadas a partir dos fluxos entrando e


saindo de cada estado
fluxo entrando = fluxo saindo (para cada estado)

Equao da conservao da probabilidade total

Soma das probabilidades a longo prazo = 1

Vide Performance by Design, Menasce & Almeida

Interpretando resultados...
Servidor de Banco de Dados

Qual o tempo de resposta tpico?

Lei de Little: R = N / X
Medir X na sada da CPU: Ucpu = X

N = 2, X = ?
Scpu -> X = Ucpu

1/Scpu

Ucpu = soma das probs de todos estados onde


h pelo menos 1 usurio na CPU:
Ucpu = P(2,0,0) + P(1,0,1) + P(1,1,0) = 0.1391 + 0.2987 + 0.1043 = 0.4521
1/Scpu = service rate = 6 transaes por minuto
X = 0.4521 6 = 2.7126 transaes por min.
R = 2/2.7126 = 0.7373 minutos / transao

Interpretando resultados...
Servidor de Banco de Dados
Qual a utilizao de cada dispositivo?
Ucpu = P(2,0,0) + P(1,0,1) + P(1,1,0) =
0.1391 + 0.2987 + 0.1043 = 0.4521
Ufast_disk = P(1,1,0) + P(0,2,0) + P(0,1,1) =
0.1043 + 0.0783 + 0.1565 = 0.3391
Uslow_disk = P(1,0,1) + P(0,0,2) + P(0,1,1) =
0.2087 + 0.1565 + 0.3131 = 0.6783

Interpretando resultados...
Servidor de Banco de Dados

Qual desempenho se dobrar nmero de clientes ativos


Solucionar novo modelo com 15 estados
(4 clientes ativos)

Qual desempenho se migrar todos arquivos para disco


lento?
Solucionar novo modelo com 3 estados
(2,0), (0,2) e (1,1)

Premissas e Limitaes

Premissa de memoryless / sem memria:

Cada estado captura todas as infos importantes do


sistema.
Prximo estado s depende do estado corrente
(e no dos estados anteriores)

Limitao resultante:

Possvel exploso do espao de estados


Se ordem importante, se jobs so distintos (mltiplas
classes), estado tem que capturar isto:
Ex: 10 classes de clientes na CPU , FIFO (ordem importa):
nmero de estados = 10! = 3.6 milhes.

Se jobs estatisticamente iguais: estado pode ser


identificado por um nmero (# clientes na CPU)

Premissas e Limitaes

Premissa exponencial:

Tempo gasto entre eventos relevantes (tempo gasto em


um estado) segue distribuio exponencial : modelos de
markov com tempo contnuo (servidor de banco de
dados)
Prob (T > s + t | T > s] = Prob (T > t)

Limitao resultante:

Exponencial pode no ser uma boa aproximao


Possvel soluo: estgios

Modelos Birth-Death

Classe de modelos de Markov com soluo geral.

Dado um sistema em um estado k (onde k indica o


nmero de clientes no sistema), um de dois
eventos pode ocorrer para mudar o estado

Birth: chegada de novo cliente -> estado k+1

Death: sada de um cliente do sistema -> estado k-1

Taxa de chegadas de novos clientes quando


sistema est no estado k = k (exponencial)

Taxa de sadas de clientes (trmino de execuo)


quando sistema est no estado k = k (exponencial)

Modelos Birth-Death
0

1
1

2
2

Soluo de Modelos Birth-Death


Fluxo entrando = fluxo saindo
P1 = 0 P0
1
P2 = 1 P1 + 1 P1
0 P0 + 2
.....
Pk+1 = k Pk + k Pk
k-1 Pk-1 + k+1
P0 + P1 + P2 + .... = 1

P0

k 1

i
i 1

k 0 i 0

Pk

Pk -1

k 1
k

P0

0 1
1

... k 1
k
2 ... k

1,2,...

Soluo de Modelos Birth-Death


Utilizao = P1 + P2 + ..... = 1 - P0
Estado estacionrio existe se P0
Throughput =

P1 +

P2 + .....

Tamanho da fila = 0P0 + 1P1 + 2P2 + .... + kPk + ....


Tempo de resposta = Tamanho da fila / throughput

Vous aimerez peut-être aussi