Üzleti IT rendszerek modellezése Teljesítménymodellezés Gönczy László gonczy@mit.bme.hu Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék
Erőforrás szintű kapacitástervezés lépései IT jellem zok IT fejlesztési terv IT in frastruktú ra T erhelés leírás Teljesítm ény becslés Terh elés jellem zok Terhelés m odell Teljesítm ény m odellek K öltségm odellek Választo tt költségm odell Kalibrálás és valid álás Teljesítm ény m odell W hat-if analízis
Modellezés célja Teljesítménymodellek T = T + T +T ( ) Kiszolgálás Várakozás TénylegesKiszolgálás HálózatiKésleltetés o erőforrás foglalási problémák felderítése o elosztott alkalmazások kommunikációs költségei o rendszer változásának hatásai (pl. gyorsabb szerver) o előrejelzés támogatása Ökölszabályok: teljesítménymodell elfogadható, ha o az erőforrások kihasználtságát 10% o az áteresztőképességet 10% o a válaszidőt 20% hibával becsli
Analitikus modell Modellek fajtái o a rendszert egyenletekkel írja le, pl. RT min = RTT + kérés min+ FeldolgozásiIdő + válasz min Szimulációs modell o szimulációt futtat o az előfordulásnak megfelelő tranzakció gyakorisággal o előny: általános vizsgálat o hátrány: drága, nehéz kifejleszteni
Modellezési/becslési paradigma ANALÍZIS Adott rendszer Adatgyűjtés Teljesítmény mérése MODELLEZÉS Modell építés Paraméterek meghatározása Modell kiértékelése Validálás BECSLÉS Tervezett rendszer teljesítménye Modell kiértékelése Modell változtatás
Teljesítmény modell paraméterei Rendszer paraméterek Terhelés elosztás szabályai Kapcsolatok / szálak max. száma Hálózati protokoll, stb. Teljesítmény modell Erőforrás paraméterek Diszk hozzáférési idő Késleltetés Sávszélesség CPU sebesség, stb. Terhelési paraméterek Intenzitás Szolgáltatás igény Lekérdezések száma / nap Kliensek száma Intenzitás változása (burst), stb. Tranzakció által használt CPU idő Adatbázis lekérdezés mérete, stb.
Az i. erőforrásra: Szolgáltatás igény és idő D i : egy tranzakció átlagos szolgáltatásigénye V i : a tranzakció átlagos erőforrás használata S i : egy használat átlagos erőforrás igénye Di = Vi Si más alakban Könnyebben meghatározható S i = D V i i
Hálózati egyenletek Egy üzenethez tartozó csomagok száma: Üzenetméret Csomagszám = MaxSzegmensMéret Összes protokoll overhead (n. hálózaton): Overhead n = Csomagszám (TCPOvhd + IPOvhd + FrameOvhd n) ahol figyelembe vesszük a TCP, IP és a konkrét hálózati protokollból eredő overhead-et
Hálózati egyenletek 2. Üzenet továbbítási ideje az n. hálózatban SzolgáltatásIdő n= ( ) n Üzenetméret + Overhead 8 6 10 Sávszélesség ahol a méret byte, a sávszélesség Mbps mértékegységű Az n. hálózat kihasználtsága (utilization) U n = üzenetek λ j SzolgáltatásIdő j n
Hálózati protokollok Protokoll PDU elnevezés Max. PDU (bájt) Overhead (bájt) Max. Adatterület TCP segment 65,515 20 65,495 UDP datagram 65,515 8 65,507 IPv4 datagram 65,535 20 65,515 IPv6 datagram 65,535 40 65,495 ATM cell 53 5 48 Ethernet frame 1,518 18 1,500 IEEE 802.3 frame 1,518 21 1,497 IEEE 802.5 Token Ring frame 4,472 28 4,444 FDDI (RFC 1390) frame 4,500 28 4,472 PDU = Protocol Data Unit MTU=Maximum Transmission Unit
Hálózati környezet példa KLIENS ROUTER LAN2: FDDI Gyűrű 100 Mbps MTU:4472 bájt R LAN1: Ethernet 10 Mbps MTU: 1500 bájt LAN3: Token Ring 16 Mbps MTU: 4444 bájt Adatbázis szerver
Hálózati teljesítmény példa Az előző hálózatban a kliens küld egy 300 bájtos kérést: LAN1: Overhead = TCPOvhd + IPOvhd + EthOvhd (1 csomag) Ovhd1 = 20 + 20 +18 = 58 LAN2: 358 8 SzolgIdő1 = = 0.000286sec 10,000,000 368 8 SzolgIdő2 = = 0.00002944sec 100,000,000 LAN3: 368 8 SzolgIdő3 = 16,000,000 = 0.000184sec
Hálózati teljesítmény példa 2. A szerver válaszol: 10000 bájt szegmentálás: 1460 bájt az egység EthernetMéret (TCPOvhd + IPOvhd) = 1500 40 7 csomag : 10000 = (6*1460 + 1240) LAN3: ( 6 1,528 + 1,308 ) 8 16,000,000 = 0.00524sec LAN2: LAN1: [ 6 ( 1,460 + 20 + 20 + 28) + ( 1,240 + 20 + 20 + 28) ] 100,000,000 [ 6 ( 1,460 + 20 + 20 + 18) + ( 1,240 + 20 + 20 + 18) ] 10,000,000 8 = 0.000838sec 8 = 0.00832sec
Hálózati teljesítmény példa 3. A kliens átlag percenként 3-szor lekérdezi az adatbázis szervert Lekérdezés: 400 bájt, Válasz: 80% 8092 bájt, 20% 100,000 bájt Milyen a hálózati kihasználtság? Csomagok száma: Kérdés: Rövid válasz: Hosszú válasz: 4 /1,460 = 1 8,092 /1,460 = 6 100,000 /1,460 = 69
Hálózati teljesítmény példa 4. LAN1 LAN2 LAN3 Kérés Rövid válasz Hosszú válasz Csomagok száma 1 6 69 Overhead (bájt) 58 348 4002 Átviteli idő (ms) 0.366 6.75 83.2 Csomagok száma 1 6 69 Overhead (bájt) 68 408 4692 Átviteli idő (ms) 0.0374 0.68 8.38 Csomagok száma 1 6 69 Overhead (bájt) 68 408 4692 Átviteli idő (ms) 0.234 4.25 52.3 Átlagos átviteli idő adott hálózaton: 0.8 (KérésÁtvIdő + RövidVálaszÁtvIdő)+ 0.2 (KérésÁtvIdő + HosszúVálaszÁtvIdő)
Hálózati teljesítmény példa 5. Átlagos átviteli idő (s) LAN1 LAN2 LAN3 0.0224 0.00223 0.0141 Kliensek Kihasználtság (%) száma LAN1 LAN2 LAN3 40 4.5 0.4 2.8 80 9 0.9 5.6 120 13.4 1.4 8.5 160 17.9 1.8 11.3 200 22.4 2.3 14.1 240 26.9 2.7 16.9 280 31.4 3.2 19.7 Hasonlóan kiszámítható, ha megváltozik a kérések intenzitása.
Kihasználtság törvénye Kihasználtság törvénye (Utilization Law) U i = B i/t = B i/(c 0/X i) = (B i/c 0) X i = S i Xi U i : az i. erőforrás kihasználtsága B i : foglaltsági ideje a monitorozás alatt T: mérési idő C 0 : tranzakciók száma Egyensúly : λi = X i S i : átlagos kiszolgálási idő X i : átlagos áteresztőképesség λ i : érkezési ráta U i = X i S i = λi Si
Forced Flow törvény: További törvények X i : az I. erőforrás áteresztőképessége V i : látogatások átlagos száma X 0 :tranzakciók átlagos száma X i = V i X0 Szolgáltatás igény törvénye (Service Demand): D i = V i S i = (X i/x 0) (U/X i i) = U/X i 0 Forced Flow Kihasználtság tv.
Little törvénye Rendszerben lévő kérések T ideig figyeljük a rendszert k rendszerben lévő kérések az intervallumban, f k az idő amíg k darab kérés van a rendszerben r k a rendszerben töltött idő összege N R C 0 : ennyi kérés hagyta el a rendszert k * r C k 0 k N = * T C0 X Áteresztőképesség Rendszerben töltött átl. idő N = k f k k = k k k T X R N = X R r
A Little törvény alkalmazása Levelezési szolgáltatást nyújtó portál 2.000.000 regisztrált felhasználó, 30%-uk küld levelet csúcsterhelésnél (1 óra hosszú). Egy email feldolgozása 5.0 másodperc, 3.5 levelet küld egy felhasználó. Egy levél mérete átlagosan 7120 bájt. Mekkora spool fájl szükséges? LevelekÁtlagosSzáma = Áteresztőképesség Válaszidő Átlagos levélméret alapján (2,000,000 0.30 3.5 5.0) = = 2916.67 3,600 SpoolFileMéret = LevelekÁtlagosSzáma LevelekÁtlagosMérete = 2916.67 7120 bájt = 20.767 Mb
A Little törvény alkalmazása 2. Webes bróker, 3 rétegű architektúra (Web szerver, Alkalmazás szerver, Adatbázis szerver) o 1.1 millió felhasználó, 20000 használja a rendszert egyszerre (csúcsterhelés) o A rendszer 3.6 millió kérést dolgoz fel óránként o Minden kérés átlagosan 1.4 tranzakciót generál az adatbázis szerveren, ami a vállalati mainframe-en található o A mainframe 11500 kérést dolgoz fel másodpercenként Mennyi az átlagos válaszidő? A válaszidő mekkora részét tölti a válasz a mainframeen?
A Little törvény alkalmazása 3. Az egész rendszer fekete doboz : FelhasználókÁtlagosSzáma ÁtlagosVálaszidő = RendszerÁteresztőképesség A mainframe a fekete doboz : 20,000 = = 3,600,000 / 3,600 20 sec A kettő aránya: ÁtlagosVálaszidő MainframeHasználat RendszerHasználat TranzakciókÁtlagosSzáma = MainframeÁteresztőképesség 20,000 1.4 = = 2.43 sec 11,500 1.4 2.43 sec = = 17% 20.0 sec
Bemenő adatok: Mérhető értékek Könyvesbolt példa Adat Érték Összes session száma 35000 Web szerver foglaltság összesen (sec) 1200 DB szerver folglatság összesen (sec) 2100 Mérési intervallum (sec) 3600 Keresések száma/session 2,50 Web szerver kérés/keresés 1,95 DB szerver kérés/keresés 0,95 Mennyi egy keresés tranzakció DB szerver szolgáltatási ideje? Modellből kapjuk (CBMG, CSID) Si Di 2100 = = = Vi 35000 2.5 0.95 0.025 sec
Könyvesbolt példa 2. Web szerver és Adatbázis szerver A Web szerver TCP fölött kommunikál, a kérés mérete 400 bájt, a válasz 9150 bájt. A hálózat 100BASE-T Ethernet. Milyen a hálózat kihasználtsága? X 0 KeresésekSzáma 35,000 2.5 1 = = = 24.3 MérésiIntervallum 3,600 sec sec CsomagokSzáma CsomagokSzáma kérés kválasz ÜzenetMéretkérés 400 = = = 1 MaxSzegmensMéret 1460 ÜzenetMéretválasz 9150 = = = 7 MaxSzegmensMéret 1460
Könyvesbolt példa 3. SzolgIdő kérés ( ÜzenetMéret + Ovhd ) 8 (400 + 20 + 20 + 18) 8 = = = 0.366 msec kérés kérés 6 6 10 Sávszélesség 10 100 SzolgIdőválasz ( ) ( ) 6 1460 + 58 + 1 390 + 58 8 = = 7.64 msec 6 10 100 U n = λ üzenetek j SzolgáltatásIdő = + = 3 24.3 (0.366 7.64)10 19.5% j n
Bemenő adatok: Könyvesbolt példa 4. Mérhető értékek Kiszámolható Változhat o vásárlók száma o vásárlók viselkedése Adat Érték Összes session száma 35000 Web szerver foglaltság összesen (sec) 1200 DB szerver folglatság összesen (sec) 2100 Mérési intervallum (sec) 3600 Keresések száma/session 2,50 Web szerver kérés/keresés 1,95 DB szerver kérés/keresés 0,95 Átlagos Web szerver szolg. igény (D WS ) msec 13,71 Átlagos DB szerver szolg. igény (D DB ) msec 24,00 Átlagos Web szerver szolg. idő (S WS ) msec 7,03 Átlagos DB szerver szolg. idő (S DB ) msec 25,26 o rendszer paraméterek (pl. fájlok átlagos mérete) Modellből l kapjuk (CBMG, CSID)
Könyvesbolt példa 5. Milyen lesz a szerverek kihasználtsága, ha megduplázódik a felhasználók száma (csúcsterhelés)? o megduplázódik a Session-ök száma o tfh. nem változik a felhasználók viselkedése 2 35,000 2.5 UWS = X 0 DWS = 0.01371 = 66.67% 3600 UDB = X 0 DDB = 48.61 0.024 = 116.7% Fejleszteni kell az adatbázisszervert!!!
Könyvesbolt példa 6. Milyen lesz a hálózat kihasználtsága, ha a képek mérete megduplázódik? Az egyszerűség kedvéért tfh. a keresés válaszának mérete is megduplázódik. Ha minden más változatlan (válasz 18300 bájt): SzolgIdőválasz ( ) ( ) 12 1460 + 58 + 1 780 + 58 8 = = 6 15.24 msec 10 100 U n = λ üzenetek j SzolgáltatásIdő = + = 3 24.3 (0.366 15.24)10 36% j n
Könyvesbolt példa 7. Milyen lesz a teljesítmény, ha megváltozik a felhasználók viselkedése és átlagosan 50%-kal többet keresnek az oldalon? Átbocsátást és kihasználtságot számolunk. UWS X 0 DWS 35,000 3.75 1 X 0 = = 36,46 3,600 sec 1 = = 36.45 0.01371 sec = 49.97% sec 1 = = 36.45 0.024 sec = 87.48% sec UDB X 0 DDB Kritikus!
Szűk keresztmetszet, skálázhatóság Szűk keresztmetszet: o azok az erőforrások, melyek korlátozzák a teljesítményt o analízis maximális terhelésnél (pesszimista érték) Nem mindig kell pontos szám o Aszimptotikus Határérték Analízis (Asymptotic Bound Analysis) Fogalmak o K: erőforrások száma o D i : szolgáltatásigény az i. erőforráson o D max : a legnagyobb szolg. igény o D min : a legkiseb szolg. igény o λ max : érkezési ráta
Nyílt modellek Nincs explicit korlát a rendszerben lévő kérésekre Ha az egyensúly teljesül: 3 rétegű architektúra példa λ max 1 D max Egy tipikus E-Business szolgáltatás adatai Réteg Szerverek száma Szolg. átl. igénybevétele Átl. szolg. idő Web szerver 5 1,8 110 msec Alkalmazás szerver 3 2,5 230 msec DB szerver 2 2,3 180 msec Mi a szűk keresztmetszet? Mennyi a max. áteresztőképesség?
Nyílt modellek 2. D D D WS AS DB V WS 1.8 = SWS = 0.110 = 0.0396 sec NWS 5 V AS = SAS = 0.192 sec NAS V DB = SDB = 0.207 sec N DB Az adatbázis szerver a szűk keresztmetszet 1 1 λ = 4.83 0.207 sec sec Tranzakciók max. gyakorisága X 0 XDB 4.83 szolgáltatás = = 2.1 V 2.3 sec DB E-Business szolgáltatások max. gyakorisága (Forced Flow)
Zárt modellek Felső korlát a kérések számára vonatkozóan (N) Ideális eset: nincs kérés várakozási sorban X U i X X 0 0 0 ( N ) ( N ) ( N ) ( N ) = 1 U i 1 D i ( N ) D N D i total X 0 ( N ) 1 D D max Service Demand tv. X 0 ( N ) N 1 min, Dtotal Dmax Little tv.
Zárt modellek 2. Példa: az előbbi 3 rétegű architektúra Egyszerre max. 20 kliensnek nyújt szolgáltatást: N = 20 Dtotal = DWS + DAS + DDB = 0.0396 sec+ 0.192 sec+ 0.207 sec = 0.4386 sec X X X 0 0 0 20 1 20 min, 0.4386 sec 0.207 sec ( ) 1 1 20 min 45.59,4.83 sec sec 1 20 4.83 sec ( ) ( )