Rendzermodellezé (BMEVIMIA405), 206. őzi félév 5. gyakorlat Teljeítménymodellezé Megoldáok. Dizk teljeítménye Egy dizk 50 kérét zolgál ki máodpercenként. Minden kéré kizolgáláa 0,005 máodpercet vez igénybe. A rendzerben ninc átlapolódá. a) Mekkora a kiaználtág? Megoldá Az erőforrá kiaználtága U X T, aol X az átlago átbocájtá é T az átlago kizolgálái idő. Teát U 0,25, így 25%-o a kiaználtág. A feladat józan ézel i megoldató: a dizknek máodpercenként 50 kéré 0,005 dolgoznia. Ha máodpercenként 0,25 máodpercet dolgozik, akkor 25% a kiaználtága. b) Mekkora a maximálian kizolgálató terelé (érkezéi ráta)? Megoldá Maximáli terelé mellett a kiaználtág U. Ekkor X max U T egyetlen, átlapolódámente feldolgozó egyégre: X max T 0,005 2. Kétrétegű arcitektúra kéré 200 kéré 200 kéré -t kell. Vagyi a zabály Adott egy webzerver (WS) é két fürtözött adatbázizerver (DB, DB2). A két adatbázi zerver közt úlyozott round robin tereléeloztá alapján válaztunk, :2 arányban. Minden felaználói kéré kizolgáláa orán mindkét fajta erőforrát aználjuk. A cúcidőzakban 30 percig monitorozzuk a rendzert, ezalatt 9000 kérét zolgál ki. A zerveken mért foglaltági idők: WS 350 CPU idő; DB 80, DB2 320 dizk IO idő. a) Kézítünk folyamatmodellt a kéréek feldolgozááról a zöveg alapján! Megoldá. Mivel a feladatban nem volt egyéb megköté, azt feltételeztük, ogy a kéréek kizolgáláa a különböző erőforráokon páruzamoan történik. Eelyett a modell leetne zekvenciáli i (az átbocátá zempontjából ninc kilönbég, de a végreajtái időben igen!), vizont az előbbi általánoabb, izen a WS aználata átlapolódat az adatbázi aználatával. A valóágban perze a WS az adatbáziívá előtt é után i dolgozik, őt, időnként még közben i. A motani modell azt fejezi ki, ogy ponto információ íján ezeket a zakazokat aggregáljuk é elfelejtjük, ogy milyen orrendben futottak (abztrakció!). b) Mekkora az egye zerverek jelenlegi átbocátáa? Megoldá Emlékeztető: A vizitáció zámmal (többek között) a rendzer é a komponenek átbocátáa é átbocátóképeége között tudunk váltani. Ha átbocátáal dolgozunk, akkor rendzerint a rendzer átbocátáából zámítjuk a komponenek átbocátáát ilyenkor a vizitáció zámmal zorozni kell, izen minden rendzerbe belépő tokent átlagoan annyizor kell feldolgoznia a komponeneknek, mint amennyi a vizitáció zám. Ha átbocátóképeéget zeretnénk zámolni, akkor rendzerint a komponenek (egyzerűen zámítató) átbocátóképeégéből kiindulva atározzuk meg a rendzer átbocátóképeégét ilyenkor a vizitáció zámmal oztani kell, izen
Rendzermodellezé (BMEVIMIA405), 206. őzi félév a minden belépő tokent annyizor kell feldolgoznia a rendzernek, mint amennyi a vizitáció zám, akkor annyival keveebb token érkezet a rendzerbe túltelítődé nélkül. Ne feledjük, ogy (többek között a zűk kereztmetzetek miatt) ebben az irányban nem elegendő a vizitáció zámmal zámolni, gyakran zükég van a zámított értékeken végzett egyéb zámítáokra (pl. minimumképzére) Számoljunk előzör a rendzerre, aztán az erőforráokra! A feldolgozott kéréek záma C 9000 ( Count ), a méré ideje T m 30 min. X rendzer C T m 9000 kéré 30 min 9000 800 X WS X rendzer v WS 5 kéré X DB X rendzer v DB 5 kéré 3 X DB2 X rendzer v DB2 5 kéré kéré 5 kéré 2 3 5 kéré,666 kéré 3,333 kéré c) Mennyi időt töltenek egy-egy kéré kizolgáláával a zerverek? Megoldá Az egye erőforráokra (B a mért foglaltági idő, Buy time, az egye zerverek pedig C v i kérét dolgoznak fel): T WS B WS C v WS 350 9000 kéré 0,5 kéré T DB B DB C v DB 80 3000 kéré 0,27 kéré T DB2 B DB2 C v DB2 320 6000 kéré 0,22 kéré d) Mekkora a rendzer maximáli átereztőképeége? Megoldá A rendzer maximáli átbocátóképeége az a legnagyobb átbocátá, amivel egyik komponenbe em érkezik több kéré, mint annak átbocátóképeége. Ennek megfelelően pl. a DB ágra Ugyanígy DB2-re é WS-re: X rendzer v DB X max DB X rendzer v DB X max DB. X rendzer v DB2 X max DB2 X rendzer XWS max v Xmax WS. () WS Mivel DB é DB2 kötött arányú válaztá (ozú távon gyakorlatilag olyan, minta minden munkát :2 arányban zétbontanánk é továbbküldenénk, teát ilyen zempontból a fork-join é a zabad válaztá közé teető), ezért a zámított értékek minimuma érkezet meg a deciion comópontoz túltelíté nélkül: ( ) X rendzer min XDB max v, XDB2 max. (2) DB v DB2 A fork mindig mindkét irányba továbbküldi a kérét, é mindkét irányba a telje munkát továbbítja, teát az elágazára zámított érték é a WS-re zámított érték közül a kiebb leet a rendzer átbocátóképeége. Ezalapján az é a 2 egyenlőtlenégekből a maximáli átbocátá, vagyi az átbocátképeég képlete: ( ) Xrendzer max min XWS max, X max DB, XDB2 max v DB v DB2 A feladat megoldááoz teát a komponenek átbocátóképeégeit kell kizámolnunk: XWS max T WS 0,5 6,666 kéré kéré XDB max T DB 0,27 3,704 kéré kéré XDB2 max T DB2 0,22 4,545 kéré kéré A rendzer maximáli átbocátóképeége ezekből: A zabad válaztáú dönté akármelyik irányba továbbküldeti a kérét, teát a az egyik ág telítében van, nyugodtan válaztatja a máikat (a kötött arányú nem). Emiatt zabad válaztánál az átbocátóképeégek özeadódnak. 2
Rendzermodellezé (BMEVIMIA405), 206. őzi félév Xrendzer max min ( 6,666 kéré, 3 3,704 kéré, 3 ) kéré 2 4,545 min ( 6,666 kéré,,2 kéré, 6,88 kéré ) X max kéré WS 6,666. Érdeme megfigyelni, ogy a minimum a WS-en eett, de a DB2-öz tartozó érték (6,88 kéré ) zintén nagyon közel van. A zűk kereztmetzet teát jelenleg a webzerver, de cak ennek a komponennek a fejleztéével vagy többzörözéével cak korlátozott mértékben növelető a teljeítmény, mert nagyon amar a DB2 válik majd zűk kereztmetzetté. e) Miért nem egyféle foglaltági időt vettünk figyelembe a két erőforrátípunál? Megoldá Azért, mert mind a DB zerver, mind a WS egy-egy ki rendzer önmagában i, é belül a dizk I/O, ill. a CPU bizonyul zűk kereztemetzetnek jelen eetben. Má rendzerben, má feladatot végreajtva leet, ogy az egyik erőforrá álózati linkje, míg a máik erőforrá RAM ávzéleége fog zerepelni. Vegyük ézre, ogy ez egy abztrakció, melynek célja a zámítáok egyzerűítée a nem (vagy kevébé) releván adatok eltávolítáával, ami abból indul ki, ogy az elanyagolt adatok atáa a megtartott adatokénál jóval kiebb (itt: a webzerver memóriája vagy merevlemez ávzéleége okkal kéőbb telítődne, mint a procezora, de ezt már el em érjük, a a procezor miatt vergődik a rendzer). Egyúttal emlékezzünk viza a 2. feladat b) rézére, aol adatelemzéel állapítottuk meg a potenciáli zűk kereztmetzetet, vagyi a kálázódá é telítődé zempontjából legmegatározóbb adatot. f) Hol cal még így i a modell? Megoldá Több egyzerűítéel i éltünk, pl. lineári kálázódát feltételeztünk, olott a való rendzerek ennél általában rozabbul kálázódnak (ráadául telítődé közelében ajlamoak leromlani), nem vettük figyelembe a valódi rendzerben előforduló öze erőforrát (lád előző feladat), feltétleztük, ogy a kéréeket tatiku módon eloztva tökélete tereléeloztát kapunk, olott ez általában nem igaz: az átlago értékek ozú távon a zámított módon alakulnak, de rövidebb időzakokra nézve egy átlagonál ozabb végreajtái idejű kéré például rövid időre telítébe vieti a rendzert. 3. Sziget közlekedéi álózata (z) Egy ziget lakói minden reggel munkába menet átkelnek a zigetet ölelő tavon. Ézak felé íd vezet, dél felé autókomp. Az irányonként egyávo íd 200 m ozú, é 60 km/ ebeéggel zabad rajta aladni, a követéi távolág (átó lámpától átó lámpáig 30 m) betartáa mellett. A négy kompajó egyenként 5 percenként tezi meg a ziget-zárazföld-ziget kört, é így óránként négyen együtt legfeljebb 800 autót tudnak átvinni a zárazföldre. a) Mekkora a íd átbocátóképeége (ézak felé)? Megoldá Little törvényében az átbocátá zerepel, nem az átbocátóképeég de abban a peciáli eetben, amikor pont telítve van a rendzer, a kettő megegyezik: N X T X N T ; N 200 m 30 m/koci 20 3 koci; T 200 m 60 km/ X 20/3 0,2/60 0,2 km 60 km/ 0,2 60 ; teát 2000 koci X max. b) Hány autó fér el egy kompban? Megoldá Az előzőöz aonlóan Little törvényéből az átbocátóképeég: N X T ; X 800 koci ; T 5 min 0, 25 ; ekkor N 200, teát egyzerre 200 autó utazik. Mivel 4 ajó van, ezért egy ajóra 50 koci fér fel. c) A reggeli cúcforgalomban mekkora a zigetet elagyó két útvonal együtte átbocátóképeége? Megoldá Az együtte átbocátóképeég a két átbocátóképeég özege. A ídon egy irányba óránként 3
Rendzermodellezé (BMEVIMIA405), 206. őzi félév 2000 koci aladat át, teát 2000 koci a íd átbocátóképeége. A kompok óránként 800 autót viznek át, teát az átbocátóképeég 2800 koci egy irányba. d) Ha délben a zárazföldi főutat baleet miatt lezárták, é a zigeten kereztül (a ídon, majd a kompon átkelve) terelik a forgalmat, mekkora a terelőútvonal átbocátóképeége? Megoldá A terelőút átbocátóképeége (oro kompozíció): X min(x íd, X komp ) 800 koci. e) Valamelyik reggel 7:00 é 8:30 között 900 autó agyta el a zigetet komppal. Mennyi volt ebben az időzakban a kompok átbocátáa é kiaználtága? Megoldá Átbocátá: X K T 900,5 Kiaználtág: U X X max 600 koci 600 koci 800 koci. 0, 75 75%. f) A fenti mérében átlagoan ány autó állt orba egyzerre a parton, a az autók jól időzítve, átlagoan fél perccel a bezálláuk előtt érkeztek kompkikötőöz? Megoldá Kompoz orbanállára Little-törvény: N X T 0, 5 min 600 autó 5 autó. 4. Tudábázi ( ) Vállalatunk nyilváno zakmai tudátára egymára i ivatkozó zócikkeket kínál a cég termékeit világzerte aználó ügyfeleknek. Egyetlen zócikk lekéréének kizolgálááoz a zervert átlagoan 60 m-ig vezi igénybe. A zócikk megtekintée után az olvaó cak az eetek 30%-ában agyja el az oldalt, többnyire ugyani egy újabb zócikkre mutató ivatkozára kattint. a) Egy olvaó öze tudázomjának kielégítééez átlagoan mekkora zerveridő zükége? Megoldá Egy zócikk lekéréének kizolgáláa átlagoan 60 m, egy felaználó pedig átlagoan v 0,3 zócikket tekint meg, 2 m teát T 60 zócikk zócikk 0,3 felaználó 200 m felaználó. A v mot i a vizitáció zám. b) Tekintük úgy, ogy az egye kéréek a zerveren nem páruzamoítatóak. Óránként ány egyedi látogatót képe kizolgálni a zerver? Megoldá Maximáli eet, amikor a kiaználtág 00%, azaz U. Ekkor U X T X U T 5 látogató. Óránként 3600 5 látogató 8000 látogató. 5. Adatbázi teljeítménymodellezée Egy adatbázi zervert 5 percig monitorozunk. Ez alatt az idő alatt a zerver procezora 2 percig volt foglalt. Azt figyeltük meg, ogy minden tranzakció általában kétzer aználta a procezort, é átlagoan m ideig aználatonként (é ezalatt teljeen lefoglalja a CPU-t, ninc páruzamoítá). Mekkora a rendzer átbocátáa é átereztőképeége? Megoldá Ki egítég: a rendzer é a komponenek átbocátóképeége közötti vizonyt írja le: 0,2 X k C k T C k C 0 C0 T V k X 0 V k C k C 0 A viit ratio (aználati arány), azt mondja meg, ogy a rendzer zintű átbocátá ogy aránylik a komponen átbocátááoz. Teát: T 5 perc; foglaltági idő, buy time: B CPU 2 perc; Viit Ratio: V CPU 2 CPU aználat/tranzakció; S CPU m CPU aználat A procezor kiaználtága: U CPU B CPU T 0,8 Forced Flow törvény: X CPU V CPU X 0 2 Geometriai elozlá várató értéke (Wikipédia) ttp://u.wikipedia.org/wiki/geometriai_elozlá 4
Rendzermodellezé (BMEVIMIA405), 206. őzi félév Mi a rendzer átbocátáát kereük, teát átrendezve X 0 X CPU V CPU, majd pedig a kiaználtág törvényét felaználva X 0 X CPU V CPU (U CPU/S CPU ) V CPU 0,8/0,00 /CPU aználat 400 tranzakció/ 2 [CPU aználat/tranzakció] A rendzer átereztőképeége: 500 tranzakció/, izen tranzakció 2 m-ig foglalja a CPU-t. 6. Szálkézlet Legalább ány aktív zálat kell engedélyeznünk egy webzerveren alkalmazáunknak, a az egyenlete terelé melletti teljeítményét nem zeretnénk vizafogni? Szálkorlát nélküli méréekkel megállapítottuk, ogy egy kéré átlagoan 20 ezredmáodpercet tölt a rendzerben, é a zerver máodpercenként 50 felaználót zolgál ki. Megoldá Little törvényét aználva N X R 50 felaználó/ 0,20 /felaználó 6, teát átlagoan 6 kéré van a rendzerben, teát 6 zálat kell indítanunk, ogy ne fogjuk viza a teljeítményt. (Burt eetén nyilván több zálra van zükég.) 7. Közöégi oldal Internete közöégi oldalt működtetünk. Az utóbbi időben zámottevően népzerűbb lett az oldal, de ezáltal a válazidő i kellemetlenül megnőtt. Az üzleti cél, ogy cúcidőzakban egyzerre 500 felaználót átlagoan négy máodperce válazidővel zolgáljon ki a onlap. a) Minimálian mekkorára kell tervezni a kizolgáló infratruktúra átbocátóképeégét, a az azon kívüli kélelteté (álózati forgalom, HTML megjeleníté a klienoldalon) egy máodpercnek becülető? Megoldá Teát a kizolgáló infratruktúránknak átlagoan 3 máodperce válazidővel kell kizolgálni egyzerre 500 felaználót. Little-törvényt alkalmazva: N 500, T 3 kéré, teát X N T 500 kéré b) Az újratervezett weboldalon a méréek zerint egyetlen kéré kizolgáláa átlagoan 20 m CPUidőt igényel a webzerveren, é 2,5 m erejéig foglal le egy adatbázizervert. Jelenleg 5 webzerver fogadja a kéréeket é az adatbázi 5 kizolgálóra van replikálva. Lineári kálázatóágot feltételezve, milyen zámítógépből é mennyit kell még legalább venni, ogy a fenti cél teljeüleen? Megoldá T CPU 20 m 0,02, T DB 2,5 m 0,025. A CPU-nak é adatbázinak i legalább 500 kérét kell tudnia kizolgálni máodpercenként, ogy a telje rendzer i képe legyen erre (akár zekvenciáli, akár páruzamo kompozíciót alkalmazunk). Jelenleg az erőforráok egyetlen példányára: XCPU max T CPU képeége együtteen 750 kéré 50 kéré, XDB max T DB 80 kéré, míg az 5 adatbázi zerveré cak 400 kéré. Teát a 5 webzerver átbocátó. Teát még kell 2 db adatbázi zerver, ogy az adatbázi réteg elérje a kívánt átbocátó képeéget. c) ( ) A kibővített rendzerben mekkora lez az egye zervertípuok kiaználtági aránya? Ha az a cél, ogy még a cúcidőzakban i legfeljebb 50%-o legyen a kiaználtág, meddig kellene még bővíteni a rendzert? Megoldá A 5 webzerver átbocátó képeége együtteen X max web átbocátá pedig X web 500 kéré módzerrel: U DB X DB X max DB 500 520 0.96. Ha 50%-o kiaználtágot zeretnénk, akkor X web 750 kéré. A kiaználtáguk teát U web X web X max web ( ) U web X DB U DB, a cúcidőzakban a zükége. Ugyan ezzel a 2 3 kéré 500 0.5 000 kéré átbocátó képeéggel kell rendelkeznie az infratruktúrának cúcidőzakban. Eez 20 webzerver é 3 adatbázi zerver kell. d) Tekintünk cak 2 db webzervert é 3 db adatbázi zervert. Kézítünk állapot alapú modell(eke)t, amely(ek) az infratruktúra erőforráait modellezi(k) az eléretőégeik (zabad/fog- 5
Rendzermodellezé (BMEVIMIA405), 206. őzi félév lalt) zerint. Milyen tervezői döntéekkel zembeülünk? Mik az egye leetőégek előnyei é átrányai? Megoldá Leetőégek: Az erőforráokat típuonként özevonva modellezzük azerint, ogy mennyi foglalt belőlük. Teát lez egy 0 2 állapotláncunk a webzerverekre, valamint egy 0 2 3 állapotláncunk az adatbázi zerverekre. Az erőforrákézlet telje modellje ezek azinkron zorzata lez. A megoldá előnye, ogy egyzerű. Ha például zeretnénk erőforrá foglalát i modellezni, akkor az könnyen megvalóítató kooperáló állapotgépekkel: a az erőforrá állapotgépe nem az utoló állapotban van, akkor ikerül a foglalá, é ezzel zinkronban az erőforrá állapotgépe i lép egyet jobbra (már eggyel keveebb erőforrá zabad). Az erőforrá felzabadítá aonlóan történik. A megoldá átránya, ogy nem zolgáltat arról információt, ogy melyik erőforrá példány mikor zabad vagy foglalt, így nem tudunk például ponto kiaználtágot mondani az egye példányok eetén, cak egy átlago értéket, ami az öze zervert jellemzi. Minden erőforrá példányt külön modellezünk egy zabad-foglalt állapotpárral (vagy akár még rézleteebben). Teát annyi állapotgép régiónk lez, aány erőforrá példányunk van. Az erőforrákézlet telje modellje ezek azinkron zorzata lez. A megoldá előnye, ogy konkrét erőforrá példányokra i tudunk például kiaználtágot zámolni. Vagy ami még érdekeebb: tudunk erőforráonként megibáodát é javítát i modellezni é ennek fényében megnézni az egye metrikák változáát. A megibáodái é javítái ráták különbözetnek i az egye példányok eetén, így leetőég nyílik eterogén erőforrá kollekció (vagy alkatréz elöregedé) modellezéére i. A megoldá átránya, ogy motantól a fogyaztók felé i több erőforrá példány látzik, ami például megneezíti a foglalá modellezéét. Egy erőforrá foglalááoz meg kell kereni egy zabad erőforrát, majd a végén pontoan azt kell felzabadítani. Ez a zituáció még tovább bonyolódik, a egy műveletez több erőforrára i zükég van (oltpont, éezteté). Ebben az eetben célzerű (é zoká i) bevezetni egy erőforrá menedzer komponent, amely elrejti ezt a folyamatot a fogyaztóktól. 6