Transcript
Page 1: Modellazione  delle Performance  a  Livello di Componenti

1

Modellazione delle Performance

a Livello di Componenti

- Cenni di reti di code

- MVA per reti di code aperte, chiuse

Page 2: Modellazione  delle Performance  a  Livello di Componenti

2

Tipi di risorse in una rete di code

Load independent

Load dependent

Delay

S(n)R(n)

S(n)R(n)

S(n)R(n)

n

n

n

Page 3: Modellazione  delle Performance  a  Livello di Componenti

3

Reti di code aperte

DISK

TAPE

uscite

arrivi

CPU

DISK

TAPE

CPUM clienti

Reti di code chiuse

Page 4: Modellazione  delle Performance  a  Livello di Componenti

4

Nomenclatura

K: numero di codeX0: throughput medio della rete. Nel caso di rete aperta in

regime stazionario X0 = Vi: numero medio di visite al servente i da parte di una richiesta

generica da quando viene generata all’istante in cui viene soddisfatta (esce dal sistema nel caso di rete aperta)

Si: tempo medio di servizio di una richiesta del servente iWi: tempo medio di attesa in coda di una richiesta nella coda iRi: tempo medio di risposta di una richiesta nella coda i.

Ri = Si + Wi

Xi: throughput della coda i-esima Xi = X0 Vi

R’i: tempo medio di residenza di una richiesta generica nella

coda i dall’istante in cui viene generata all’istante in cui viene soddisfatta (esce dal sistema nel caso di rete aperta) R’

i = Vi Ri

Di: la domanda di servizio che una richiesta effettua ad un servente di una coda i dall’istante in cui viene generata all’istante in cui viene soddisfatta (esce dal sistema nel caso di rete aperta) Di = Vi Si

Page 5: Modellazione  delle Performance  a  Livello di Componenti

5

Qi: tempo totale speso da una richiesta in attesa nella coda i dall’istante in cui viene generata all’istante in cui viene soddisfatta (esce dal sistema nel caso di rete aperta)

Qi = Vi Wi

-------------------------------R’

i = Vi Ri =Vi (Wi + Si) = Wi Vi + Si Vi = Qi + Di

-------------------------------

R0: tempo medio di risposta ad una richiesta dell’intero sistemaR0 = k i=1 R’

i

ni: numero medio di richieste alla coda i in attesa o che stanno ricevendo un servizio

N: numero medio di richieste nel sistemaN = k i=1 ni

Page 6: Modellazione  delle Performance  a  Livello di Componenti

6

Trattazione Reti Aperte (Single Class)

Equazioni:

Arrival theorem (for open networks): il numero medio di richieste residenti in una coda i trovate da una richiesta entrante nella stessa coda (na

i) è pari al numero medio di richieste nella coda i (ni) .

. Ri(n) = Si + Wi(n) = Si + ni Si

Applicando la legge di Little (ni = Xi Ri) e Ui = XiSi si ha:

. Ri = Si _ (1-Ui)

Quindi:

. R’i = Vi Ri = Di _

(1-Ui)Inoltre:

. ni = Ui _ (1-Ui)

Ri = Si (1 + ni) = Si + Si Xi Ri

Ri (1- Ui) = Si

Dato che Ui = Xi Si

Page 7: Modellazione  delle Performance  a  Livello di Componenti

7

Trattazione Reti Aperte (Single Class)

Calcolo del massimo :

Ricordiamo che in una rete aperta la frequenza media di utenti che entrano nella rete viene fissata a priori; dato che per troppo alto la rete diventerà instabile, siamo interessati al massimo valore di che possiamo applicare alla rete.

Dato che:

. Ui = Xi Si = Vi Si

vale la

. = Ui / Di dato che Di = Vi Si

Sapendo che in condizioni di massimo utilizzo della coda i Ui sarà pari a 1, possiamo calcolare il massimo che non destabilizza il sistema:

. 1 _ maxk

i=1 Di

Page 8: Modellazione  delle Performance  a  Livello di Componenti

8

Esempio DB Server(Example 9.1)

10800 request per hour = X0

DCPU = 0,2 sec Service demand at CPU

VDISK1 = 5VDISK2 = 3SDISK1 = SDISK2 = 15 msec

DDISK1 = VDISK1 * SDISK1 = 5 * 15 msec = 75 msec Service demand at disk 1 DDISK2 = VDISK2 * SDISK2 = 3 * 15 msec = 45 msec Service demand at disk 2

.Service Demand LawUCPU = DCPU * X0 = 0,2 sec/req * 3 req/sec = 0,6 Utilization of the CPU

UD1 = DDISK1 * X0 = = 0,225 Utilization of the disk 1

UD2 = = 0,135 Utilization of the disk 1

R’CPU = DCPU / (1- UCPU ) = 0,5 sec Residence times

R’D1 = DDISK1 / (1- UDISK1 ) = 0,097 sec

R’D2 = DDISK2 / (1- UDISK2 ) = 0,052 sec

CPU DISK1 DISK2

Page 9: Modellazione  delle Performance  a  Livello di Componenti

9

Total response time

R0 = R’CPU + R’D1 + R’D2 = 0,649 sec

Average number of requests at each queuenCPU = UCPU / (1- UCPU ) = 0,6 / (1-0,6) = 1,5nDISK1 = = 0,29nDISK2 = = 0,16

Total number of requests at the serverN = nCPU + nDISK2 + nDISK2 = 1,95 requests

RMaximum arrival rate = 1 _ = 1 _ = 5 rich /sec

maxki=1 Di max (0,2; 0,075; 0,045)

Page 10: Modellazione  delle Performance  a  Livello di Componenti

10

Trattazione Reti Aperte (Multiple Class)

r classi di utenti, k code

Input parametersDi,r , r

Equations

. Ui,r () = r Vi,r Si,r = r Di,r

. Ui () = Rr=1 Ui,r ()

. R’i,r () = Di,r delaying resource

Di,r / (1-Ui ()) queuing resource

. R0,r () = Ki=1 R’

i,r ()

. ni,r () = Ui,r () / (1-Ui ())

. ni, () = Rr=1 ni,r ()

Average residence time of class r request at resource i

Utilization

Average class r requests at resource i

Average class r request response time

Average number of requests at resource i

Page 11: Modellazione  delle Performance  a  Livello di Componenti

11

Esempio DB server(example 9.2)

query – 5 tx per second (tps)2 classi di richieste

update – 2 tx per second (tps)

Servicedemand x

Query Updates

• CPU 0,1 0,15• DISK1 0,08 0,20• DISK2 0,07 0,10

Utilizations (%)

CPU 50 30

Disk1 40 40

Disk 2 35 20

Residence times (sec)

CPU 0,50 0.75

Disk1 0,40 1,00

Disk 2 0,016 0,22

Response times (sec) 1,06 1,97

Page 12: Modellazione  delle Performance  a  Livello di Componenti

12

Trattazione Reti Chiuse (Mean Value Analysis)

• Permette di calcolare gli indici prestazionali (tempo medio di risposta, throughput, lunghezza media della coda, ecc…) di una rete chiusa

• Metodo iterativo basato sulla considerazione che i risultati di una rete di code possano essere calcolati a partire dai risultati della stessa rete con una popolazione ridotta di un’unità.

• Utilizzabile anche per reti di code ibride

Nomenclatura. X0: throughput medio della rete di code.. Vi: numero medio di visite di una richiesta ad una coda i.. Si: tempo medio di servizio di una richiesta del servente i.. Ri: tempo medio di permanenza di una richiesta alla coda i.. R’

i: tempo totale medio di permanenza di una richiesta alla coda i considerando tutte le sue visite alla coda. Pari a Vi Ri

. Di: tempo totale medio di servizio di una richiesta alla coda i considerando tutte le sue visite alla coda . Pari a Vi Si

. R0: tempo medio di risposta della rete di code. Pari alla somma degli

R’i

nia: numero medio di richieste che una richiesta trova al suo ingresso

in coda.

Forced Flow LawData la nomenclatura vista sopra, abbiamo:

. Xi = X0 Vi

Page 13: Modellazione  delle Performance  a  Livello di Componenti

13

Mean Value Analysis (Single class)

Equazioni:

Ri(n) = Si + Wi(n) = Si + nia(n) Si = Si (1+ ni

a(n) )

Arrival Theorem: il numero medio di richieste (nia) residenti in una coda i che

vengono trovate da una richiesta entrante nella coda stessa è pari al numero medio di richieste in tutta la coda i nel caso in cui nella rete di code vi siano n-1 richieste (ni

(n-1) cioè n meno quella che vuole il servizio sulla coda i-esima)

In altri termini: nia(n) = ni

(n-1)

Quindi: Ri = Si(1+ni(n-1))

e moltiplicando entrambi i membri per Vi

=> R’i = Di(1+ni(n-1))

Applicando la legge di Little a tutto il sistema “rete di code” (n=X0R0), abbiamo che:

=> X0 = n / R0(n) = n / Kr=1 R’

i(n)

Applicando la legge di Little e la Forced Flaw Law:=> ni(n) = Xi(n) Ri(n) = X0(n) Vi Ri(n) = X0(n) R’

i(n)

Page 14: Modellazione  delle Performance  a  Livello di Componenti

14

Mean Value Analysis (Single class)

Riassumendo, le tre equazioni sono:

-> Residence Time equationR’

i = Di[1+ni(n-1)]

-> Throughput equationX0 = n / K

r=1 R’i(n)

-> Queue lenght equationni(n) = X0(n) R’

i(n)

Procedimento iterativo:1. Sappiamo che ni(n) = 0 per n=0; infatti se non ci sono messaggi

nelle rete di code certamente non ci sono in ognuna delle singole code che la costituiscono.

2. Sapendo ni(0) si possono calcolare i vari R’i(1)

3. Sapendo gli R’i(1) si possono calcolare i vari ni(1) e X0(1)

4. Sapendo gli ni(1) si possono calcolare gli R’i(2)

5. Si continua finchè non si sono trovati gli ni(n) R’i(n) e X0(n) dove n

è il numero di richieste che circolano all’interno della rete in considerazione.

Page 15: Modellazione  delle Performance  a  Livello di Componenti

15

Esempio DB Server(example 9.3)

• Richieste da 50 clients• Ogni richiesta necessita 5 letture di record da un disco• Average read time di un record = 9 msec• Ogni richiesta al DB necessita di 15 msec di CPU

DCPU = SCPU = 15 msec Service demand at CPUDDISK = SDISK * VDISK = 9 * 5 = 45 msec Service demand at the disk

Using MVA Equations

n = 0; Number of cuncurrent requestsR’CPU = 0; Residence time for CPUR’DISK = 0; Residence time for diskR0 = 0; Average response timeX0 = 0; ThroughputnCPU = 0; Queue lenght at CPUnDISK = 0 Queue lenght at disk

n = 1; R’CPU = DCPU = 15 msec;

R’DISK = DDISK = 45 msec; R0 = DCPU + DDISK = 60 msec;

X0 = n/ R0 = 0,0167 tx/msecnCPU = X0 * R’CPU = 0,250nDISK = 0,750

Page 16: Modellazione  delle Performance  a  Livello di Componenti

16

Reti Chiuse (Single Class)Bounds

Identificazione del collo di bottiglia (1/2)

Normalmente il throughput generato da una rete di code tenderà a saturare al crescere delle richieste all’interno del sistema; siamo quindi interessati a individuare quale sia il componente all’interno del sistema (supposto che sia uno solo) che provoca la saturazione.

Ricordando che nel caso di reti aperte: 1 _

maxki=1 Di

e sostituendo con X0 (n): X0 (n) 1 _

maxki=1 Di

Ricordando la Throughput Equation di MVA e tenendo presente che R’

i Di per tutte le code i, abbiamo:

X0 (n) = n n _

Kr=1 R’

i Kr=1 Di

Page 17: Modellazione  delle Performance  a  Livello di Componenti

17

Reti Chiuse (Single Class)Bounds

Identificazione del collo di bottiglia (2/2)

Combinando le due equazioni ottenute abbiamo:

-> X0 (n) min n _ , 1 _ K

r=1 Di maxki=1 Di

Quindi per n piccoli il throughput crescerà al più linearmente con n, dopo di che si appiattisce su un valore pari a 1/ maxk

i=1 Di

.

X0

n

Page 18: Modellazione  delle Performance  a  Livello di Componenti

18

Reti Chiuse (Single Class)Bounds

Tempi medi di risposta (1/2)

Quando il throughput raggiunge il suo massimo valore (cioè per n grande) il tempo medio di risposta corrisponde a:

R0 (n) n _

max throughput

Quindi per grandi valori di n il tempo di risposta cresce linearmente con n:

-> R0 (n) n maxki=1 Di

Al contrario, per piccoli valori di n (n prossimo ad 1) il tempo medio di risposta sarà pari a .

-> R0 (n) = Kr=1 Di

dato che i tempi di attesa sono nulli.

Page 19: Modellazione  delle Performance  a  Livello di Componenti

19

Reti Chiuse (Single Class)Bounds

Tempi medi di risposta (2/2)

Potremo quindi stabilire un lower bound sul tempo medio di risposta pari a:

-> R0 (n) max Kr=1 Di , maxk

i=1 Di

Page 20: Modellazione  delle Performance  a  Livello di Componenti

20

Esempio DB Server(Example 9.4)

Nuovi scenari rispetto es.precedente:• Aumento degli indici nel DB• Disco 60% più veloce (average service time =

5,63 msec)• CPU più veloce (service demand = 7,5 msec)

Scenario Service demand DCPU

Service demand DDISK

Di 1/

maxDi

Bootleneck

a 15 2,5 * 9 = 22,5 37,5 0,044 disk

b 15 5*5,63 = 28,15 43,15 0,036 disk

c 15/2 = 7,5 45 52,5 0,022 disk

a+b 15 2,55*5,63 = 14,08 29,08 0,067 CPU

a+c 15/2 = 7,5 2,5 * 9 = 22,5 30,0 0,044 disk

Page 21: Modellazione  delle Performance  a  Livello di Componenti

21

Mean Value Analysis (Multiple Class)

Denotati con:

. N: il vettore contenente il numero di richieste per ogni classe all’interno del sistema; Nr numero di richieste di classe r. lr : un vettore contenente 0 in ogni posizione diversa da r e 1 nella posizione r;

Le equazioni caratterizzanti il sistema sono:

-> Residence Time Equation for class rR’

i,r(N)= Di,r[1+ni(N – 1r)]

-> Throughput equation for class rX0,r = Nr / K

r=1 R’i,r(N)

-> Queue lenght equation for class rni,r(n) = X0,r(n) R’

i,r

-> Queue equation ni(N)= R

r=1 ni,r(N)

Page 22: Modellazione  delle Performance  a  Livello di Componenti

22

Quando si usano molte classi, il calcolo della ni per un certo N richiede di calcolare tutte le ni,r; queste dipendenze rendono spesso molto oneroso il calcolo della MVA;

Per questo si usa un metodo approssimato basato sull’osservazione che il numero di richieste di una classe r presenti un una coda è proporzionale al numero di richieste di classe r nella rete di code. Da questo segue che:

ni,r ( N – lr) = Nr – 1 ni,r ( N ) Nr

E quindi la seguente equazione:

-> Approssimazione ni,r ( N – lr) = Nr – 1 ni,r ( N )

Nr

Tuttavia questa approssimazione si basa sulla conoscenza di: ni,r(N). Normalmente per risolvere questo problema si usa un metodo iterativo basato sull’utilizzare un valore ni,r(N) approssimato, ricavare iterativamente ni,r(N), e ripetere il procedimento finché la differenza fra i due valori non scende al di sotto di una soglia di errore precedentemente stabilita.

Mean Value Analysis (Multiple Class)


Recommended