Modellazione delle Performance a Livello di Componenti Cenni
- Slides: 22
Modellazione delle Performance a Livello di Componenti - Cenni di reti di code - MVA per reti di code aperte, chiuse
Tipi di risorse in una rete di code S(n) R(n) n Load independent S(n) R(n) n Load dependent S(n) R(n) Delay n
Reti di code aperte uscite arrivi DISK CPU TAPE Reti di code chiuse DISK M clienti CPU TAPE
Nomenclatura K: numero di code X 0: throughput medio della rete. Nel caso di rete aperta in regime stazionario X 0 = 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 i Wi: tempo medio di attesa in coda di una richiesta nella coda i Ri: tempo medio di risposta di una richiesta nella coda i. Ri = Si + Wi Xi: throughput della coda i-esima Xi = X 0 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
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 ---------------R 0: tempo medio di risposta ad una richiesta dell’intero sistema R 0 = 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 sistema N = k i=1 ni
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 (nai) è 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 = Xi Si si ha: . Ri = Si _ (1 -Ui) Ri = Si (1 + ni) = Si + Si Xi Ri Ri (1 - Ui) = Si Quindi: . R’ i = V i Ri = Inoltre: . ni = Ui _ (1 -Ui) Dato che Ui = Xi Si
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 maxki=1 _ Di
Esempio DB Server (Example 9. 1) CPU DISK 1 DISK 2 10800 request per hour = X 0 DCPU = 0, 2 sec Service demand at CPU VDISK 1 = 5 VDISK 2 = 3 SDISK 1 = SDISK 2 = 15 msec DDISK 1 = VDISK 1 * SDISK 1 = 5 * 15 msec = 75 msec DDISK 2 = VDISK 2 * SDISK 2 = 3 * 15 msec = 45 msec. Service Demand Law UCPU = DCPU * X 0 = 0, 2 sec/req * 3 req/sec = 0, 6 UD 1 = DDISK 1 * X 0 = = 0, 225 UD 2 = = 0, 135 Service demand at disk 1 Service demand at disk 2 R’CPU = DCPU / (1 - UCPU ) = 0, 5 sec R’D 1 = DDISK 1 / (1 - UDISK 1 ) = 0, 097 sec R’D 2 = DDISK 2 / (1 - UDISK 2 ) = 0, 052 sec Residence times Utilization of the CPU Utilization of the disk 1
Total response time R 0 = R’CPU + R’D 1 + R’D 2 = 0, 649 sec Average number of requests at each queue n. CPU = UCPU / (1 - UCPU ) = 0, 6 / (1 -0, 6) n. DISK 1 = n. DISK 2 = = 1, 5 = 0, 29 = 0, 16 Total number of requests at the server N = n. CPU + n. DISK 2 = 1, 95 requests RMaximum arrival rate = 1 _ = 5 rich /sec maxki=1 Di max (0, 2; 0, 075; 0, 045)
Trattazione Reti Aperte (Multiple Class) r classi di utenti, k code Input parameters Di, 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 . R 0, r ( ) = Ki=1 R’i, r ( ). ni, r ( ) = Ui, r ( ) / (1 -Ui ( )). ni, ( ) = Rr=1 ni, r ( ) Utilization Average residence time of class r request at resource i Average class r request response time Average class r requests at resource i Average number of requests at resource i
Esempio DB server (example 9. 2) query – 5 tx per second (tps) 2 classi di richieste update – 2 tx per second (tps) Service demand x Query Updates • CPU 0, 15 • DISK 1 0, 08 0, 20 • DISK 2 0, 07 0, 10 Utilizations (%) CPU 50 30 Disk 1 40 40 Disk 2 35 20 CPU 0, 50 0. 75 Disk 1 0, 40 1, 00 Disk 2 0, 016 0, 22 Response times (sec) 1, 06 1, 97 Residence times (sec) 11
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. X 0: 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. R 0: 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 Law Data la nomenclatura vista sopra, abbiamo: . Xi = X 0 Vi
Mean Value Analysis (Single class) Equazioni: Ri(n) = Si + Wi(n) = Si + nia(n) Si = Si (1+ nia(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=X 0 R 0), abbiamo che: => X 0 = n / R 0(n) = n / Kr=1 R’i(n) Applicando la legge di Little e la Forced Flaw Law: => ni(n) = Xi(n) Ri(n) = X 0(n) Vi Ri(n) = X 0(n) R’i(n)
Mean Value Analysis (Single class) Riassumendo, le tre equazioni sono: -> Residence Time equation R’i = Di[1+ni(n-1)] -> Throughput equation X 0 = n / Kr=1 R’i(n) -> Queue lenght equation ni(n) = X 0(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 X 0(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 X 0(n) dove n è il numero di richieste che circolano all’interno della rete in considerazione.
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 DDISK = SDISK * VDISK = 9 * 5 = 45 msec Service demand at CPU Service demand at the disk Using MVA Equations n = 0; R’CPU = 0; R’DISK = 0; R 0 = 0; X 0 = 0; n. CPU = 0; n. DISK = 0 Number of cuncurrent requests Residence time for CPU Residence time for disk Average response time Throughput Queue lenght at CPU Queue lenght at disk n = 1; R’CPU = DCPU = 15 msec; R’DISK = DDISK = 45 msec; R 0 = DCPU + DDISK = 60 msec; X 0 = n/ R 0 = 0, 0167 tx/msec n. CPU = X 0 * R’CPU = 0, 250 n. DISK = 0, 750
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 X 0 (n): X 0 (n) 1 _ maxki=1 Di Ø Ricordando la Throughput Equation di MVA e tenendo presente che R’i Di per tutte le code i, abbiamo: X 0 (n) = n Kr=1 R’i n Kr=1 Di _
Reti Chiuse (Single Class) Bounds Identificazione del collo di bottiglia (2/2) ØCombinando le due equazioni ottenute abbiamo: -> X 0 (n) min n _, 1 _ Kr=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/ maxki=1 Di X 0 . n
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: R 0 (n) n _ max throughput Quindi per grandi valori di n il tempo di risposta cresce linearmente con n: -> R 0 (n) n maxki=1 Di Al contrario, per piccoli valori di n (n prossimo ad 1) il tempo medio di risposta sarà pari a. -> R 0 (n) = Kr=1 Di dato che i tempi di attesa sono nulli.
Reti Chiuse (Single Class) Bounds Tempi medi di risposta (2/2) Potremo quindi stabilire un lower bound sul tempo medio di risposta pari a: -> R 0 (n) max Kr=1 Di , maxki=1 Di
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/ Bootleneck max. Di 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, 044 disk 20
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 r R’i, r(N)= Di, r[1+ni(N – 1 r)] -> Throughput equation for class r X 0, r = Nr / Kr=1 R’i, r(N) -> Queue lenght equation for class r ni, r(n) = X 0, r(n) R’i, r -> Queue equation ni(N)= Rr=1 ni, r(N)
Mean Value Analysis (Multiple Class) 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) ni, r ( N ) = Nr – 1 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.
- Analisi componenti principali
- Cenni cehresi
- Ritratto di silvana cenni felice casorati
- Cenni di pepo
- Componenti circuitali
- Fisica che studia il moto dei corpi
- Componenti principali di un computer
- Mauro componenti
- Modellazione predittiva
- Componenti del sangue
- Modellazione dei dati
- Componenti fortemente connesse
- Modellazione e simulazione
- Regni rinascimentali mappa
- L esperienza delle cose moderne e la lezione delle antique
- La nascita delle lingue e delle letterature romanze
- Tcp udp icmp
- Curve di livello
- Livello eqf
- Livello eqf
- Aumenti ccnl metalmeccanici
- Codifica di alto livello
- Scrittura preconvenzionale