Implementace softwarov´ych load-balancer˚ u s pouˇzit´ım open-source platforem Jan Mich´alek (mic518) 18. ledna 2012
1
Obsah ´ 1 Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1 Z´ akladn´ı pojmy . . . . . . . . . . . . . . . . . . . . . ˇ alovatelnost (scaling) . . . . . . . . . . . . 1.1.1 Sk´ 1.1.2 Vyvaˇzov´ an´ı z´ atˇeˇze (LoadBalancing) . . . . . 1.1.3 Vysok´ a dostupnost (High Availability = HA) 1.1.4 cluster . . . . . . . . . . . . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 1 1 1 1 1
2 Druhy vyvaˇ zov´ an´ı z´ atˇ eˇ ze dle vstev ISO-OSI 2.1 Druh´ a vrstva . . . . . . . . . . . . . . . . . . 2.2 Tˇret´ı vrstva / ˇctvrt´ a vrstva . . . . . . . . . . 2.3 Sedm´ a vrstva . . . . . . . . . . . . . . . . . . 2.4 Kombinace . . . . . . . . . . . . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 2 2 3 3
3 OpenSource software implementuj´ıc´ı vyvaˇ zov´ an´ı z´ atˇ eˇ ze . . 3.1 HAProxy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Crossroads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 Pound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . .
. . . .
. . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5 5 5 6
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
5 Z´ avˇ er . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
4 Testov´ an´ı
2
. . . .
. . . . . . . . . . . . . . .
Seznam pouˇ zit´ ych zkratek a symbol˚ u WWW DNS LB ASIC SSL TCP HTTP HDD SSH SMTP
– – – – – – – – – –
World Wide Web Domain Name System Load Balancing Application-specific integrated circuit Secure Sockets Layer Transmission Control Protocol Hypertext Transfer Protoco Hard Drive Disc Secure Shell Simple Mail Transfer Protocol
3
´ Uvod
1 1.1
Z´ akladn´ı pojmy
1.1.1
ˇ alovatelnost (scaling) Sk´
Kaˇzd´ y server m´ a koneˇcn´ y v´ ykon, kter´ y je dan´ y souˇcasnou technoligi´ı i fyzik´aln´ımi omezen´ımi. Naproti tomu serverov´e aplikace mus´ı zpracov´avat st´ale rostouc´ı mnoˇzstv´ı poˇzadavk˚ u od st´ale rostouc´ıho mnoˇzstv´ı uˇzivatel˚ u. M˚ uˇze tedy doj´ıt k situaci, kdy v´ ykon jednoho serveru ani po vˇsemoˇzn´ ych optimalizac´ıch na provoz takov´e aplikace nestaˇc´ı. Ze situace jsou tˇri moˇzn´a v´ ychodiska: • Pˇ repsat celou aplikaci tak, aby byla schopn´a bˇeˇzet paralelnˇe na v´ıce serverech. To ovˇsem stoj´ı nemal´e finanˇcn´ı prostˇredky a hlavnˇe ˇcas. V dobˇe kdy bude takov´a aplikace dokonˇcena uˇz m˚ uˇze b´ yt zastaral´ a a je tˇreba j´ı opˇet upravovat. Nezvl´adnut´ı tohoto pˇr´ıstupu m˚ uˇze v´est i ke sn´ıˇzen´ı konkurenceschopnosti spoleˇcnosti.1 • Aplikaci zkop´ırovat“ a nasadit mezi jednotliv´e instance aplikace a uˇzivatele software [1.1.2], ” kter´ y se postar´ a o rozloˇzen´ı z´ atˇeˇze. Aplikace si pˇritom v˚ ubec nen´ı vˇedoma“ situace. Toto ” ˇreˇsen´ı lze pouˇz´ıt jenom ve vyj´ımeˇcn´ ych pˇr´ıpadech, kdy nedoch´az´ı k u ´pravˇe dat na stranˇe aplikace a tud´ıˇz kopie jsou st´ ale shodn´e. • Kompromis mezi v´ yˇse uveden´ ymi. Mezi klienty a aplikaci je nasazen software [1.1.2] a souˇcasnˇe je aplikace ˇc´ astˇeˇcnˇe upravena, aby byla s t´ımto software schopna spolupracovat. Tento pˇr´ıstup je v souˇcasnosti nejˇcastˇejˇs´ı u stˇrednˇe velk´ ych firem a postupnˇe se prosazuje i do menˇs´ıch. Schopnost aplikace dynamicky vyuˇz´ıvat promˇenn´e mnoˇzstv´ı syt´emov´ ych prostˇredk˚ u dle vyt´ıˇzen´ı bez toho, aby to mˇelo vliv na jej´ı funkˇcnost lze naz´ yvat ˇsk´alovatelnost´ı 1.1.2
Vyvaˇ zov´ an´ı z´ atˇ eˇ ze (LoadBalancing)
Vyvaˇzov´ an´ı z´ atˇeˇze je schopnost pˇrimˇet v´ıce server˚ u pod´ılet se na jedn´e sluˇzbˇe a vykon´avat stejnou pr´ aci. 2 1.1.3
Vysok´ a dostupnost (High Availability = HA)
S nar˚ ustaj´ıc´ım poˇctem server˚ u pod´ılej´ıc´ıch se na jedn´e sluˇzbˇe, roste pravdˇepodobnost selh´an´ı nˇekter´eho ze z˚ uˇcastnˇen´ ych prvk˚ u. Schopnost zajistit plnohodnotnou sluˇzbu bˇehem pˇredem stanoven´eho poˇctu souˇcasn´ ych selh´ an´ı 3 se naz´ yva vysok´a dostupnost. Oba pˇredchoz´ı pojmy spolu u ´zce souvis´ı a proto je lid´e ˇcasto zamˇen ˇuj´ı. Je ovˇsem nutn´e m´ıt na pamˇeti, ˇze jist´e LoadBalancingov´e techniky neposkytuj´ı automaticky vysokou dostupnout a jsou proto nebezpeˇcn´e. 1.1.4
cluster
P˚ uvodn´ı v´ yznam slova cluster dle definice z wikipedie[5]: “Poˇc´ıtaˇcov´ y cluster (anglicky computer cluster) je seskupen´ı volnˇe v´azan´ ych poˇc´ıtaˇc˚ u, kter´e spolu u ´zce spolupracuj´ı, takˇze navenek mohou pracovat jako jeden poˇc´ıtaˇc. Obvykle jsou propojeny poˇc´ıtaˇcovou s´ıt´ı. Clustery jsou obvykle nasazov´any pro zv´ yˇsen´ı v´ ypoˇcetn´ı rychlosti nebo spolehlivosti s vˇetˇs´ı efektivitou neˇz by mohl poskytnout jedin´ y poˇc´ıtaˇc, pˇriˇcemˇz jsou levnˇejˇs´ı neˇz jedin´ y poˇc´ıtaˇc o srovnateln´e rychlosti nebo spolehlivosti.” Tento v´ yznam m˚ uˇze b´ yt u vyvaˇzov´an´ı z´atˇeˇze pouˇzit pˇrenesenˇe. Jednotliv´e uzly spolu totiˇz nemusej´ı nutnˇe spolupracovat, pouze pln´ı stejnou u ´lohu. (Napˇr. generov´an´ı WWW str´anky) 1 Pˇ resto
je tento proces nˇ ekdy nunt´ e podstoupit zobrazen´ı WWW str´ anky, vykon´ an´ı SQL dotazu, . . . 3 Hodnoty jsou vˇ etˇsinou zakotven´ e ve smlouv´ ach s klienty a za kaˇ zd´ e procento se draze plat´ı 2 napˇ r.
1
Obr´ azek 1: The OSI Reference Model, zdroj: [1]
2
Druhy vyvaˇ zov´ an´ı z´ atˇ eˇ ze dle vstev ISO-OSI
Jednotliv´e vrstvy ISO modelu jsou obr´azku 1 na str. 2
2.1
Druh´ a vrstva
LoadBalancing na druh´e vrstvˇe (tak´e naz´ yv´an jako link aggregation, port aggregation, etherchannel, gigabit etherchannel port bundling) je sdruˇzov´an´ı v´ıce fyzick´ ych spojen´ı do jednoho logick´eho, kter´e m´ a vyˇsˇs´ı propustnost neˇz jednotliv´a fyzick´a spojen´ı. Jsou-li spoje vedeny odliˇsn´ ymi fyzick´ ymi cestami, pak agregace tak´e vytv´ aˇr´ı redundaci a zvyˇsuje odolnost v˚ uˇci v´ ypadk˚ um, Agregace spojen´ı m˚ uˇze b´ yt pouˇzita aby zlepˇsila pˇr´ıstup koncov´ ych s´ıt´ı spojen´ım modemov´ ych nebo digit´aln´ıch spojen´ı. Tak´e m˚ uˇze b´ yt pouˇzita pˇri budov´an´ı multigigabitov´e p´ateˇrn´ı s´ıtˇe. Linuxov´ y kernel m´a zabudovanou podporu agregace, takˇze je moˇzn´e spojit v´ıce rozhran´ı tak, aby se zv´ yˇsila propustnost nebo odolnost v˚ uˇci v´ ypadk˚ um. zdroj [2]
2.2
Tˇ ret´ı vrstva / ˇ ctvrt´ a vrstva
Nejvyˇsˇs´ı v´ ykon lze dos´ ahnout pˇrid´ an´ım nejniˇzˇs´ıho moˇzn´eho overhead-u pˇri zpracov´an´ı dat. To zpravidla znamen´ a zpracov´ an´ı packet˚ u na s´ıt’ov´e vrstvˇe. Proto maj´ı LoadBalancer-y na tˇret´ı vrstvˇe vysokou propustnost. (Napˇr. pˇr´ım´e routov´an´ı na z´akladˇe hashovac´ıho algoritmu). Bohuˇzel vyvaˇzov´ an´ı z´ atˇeˇze na u ´rovni tˇret´ı vrstvy t´emˇeˇr nikdy nestaˇc´ı a je nutno zpracovat i datagramy z vyˇsˇs´ı (4.) vrstvy. Pot´e nejv´ıce strojov´eho ˇcasu zpravidla zabere vytv´aˇren´ı session a jej´ı ukonˇcen´ı. I tyto operace lze ovˇsem zvl´ adnout vysok´ ymi rychlostmi, protoˇze jsou strojovˇe levn´e“. N´aroˇcnˇejˇs´ı ” aplikace (jako je napˇr. pˇreklad adres) vyˇzaduj´ı mnohem vˇetˇs´ı v´ ykon. Mus´ı totiˇz pˇrepoˇc´ıt´avat kontroln´ı souˇcty a vyhled´ avat v tabulk´ach. Na vˇsechny tyto operace je dnes ˇcasto vyuˇz´ıv´ana hardwarov´ a akcelerace. • Dedikovan´ y ASIC LoadBalancer dok´aˇze smˇerovat pakety na rychlosti bl´ıˇz´ıc´ı se rychlosti m´edia, zakl´ adat a ukonˇcovat session prakticky okamˇzitˇe. N´aroky na pamˇet’ jsou pˇritom maxim´ alnˇe nˇekolik set byt˚ u na session. (uloˇzen´ı paket˚ u pˇred smˇerov´an´ım a parametry session). Dedikovan´e LoadBalancer-y tak´e umoˇzn ˇuj´ı dalˇs´ı pokroˇcil´e techniky, jako je napˇr. virtu´ aln´ı MAC, mapov´ an´ı cel´ ych s´ıt´ı na jednu IP apod. 2
• Oproti tomu proxy na 4. vrstvˇe zpracov´avan´a softwarovˇe povede ke znaˇcn´emu sn´ıˇzen´ı v´ ykonu. Na jednoduch´e u ´lohy, kter´e by bylo moˇzn´e zpracovat na u ´rovni paket˚ u, mus´ı syst´em decapsulovat jednotliv´e vrstvy aby naˇsel odpov´ıdaj´ıc´ı data, alokovat pamˇet’, pˇredat je procesu, nav´ azat spojen´ı na vzd´ alen´ y server a do toho vˇseho jeˇstˇe spravovat zdroje syst´emu. Z tohoto d˚ uvodu bude softwarov´ a proxy 5-10 kr´at pomalejˇs´ı neˇz hardwarov´e zaˇr´ızen´ı postaven´e za t´ımto u ´ˇcelem. N´ aroky na pamˇet’ jsou zde mnohem vyˇsˇs´ı. (Je nutn´e drˇzet buffery pro komunikaci se syst´emem, u ´daje o session). Velikost pamˇeti zabran´a jednou session se tak m˚ uˇze vyˇsphat k nˇekolika kilobyt˚ um. Pˇreloˇzeno z [3] Na prvn´ı pohled se zd´ a, ˇze vˇse mluv´ı pro pouˇz´ıt´ı Dedikovan´ ych LoadBalancer-˚ u. Jejich z´asadn´ı nev´ yhodou je ovˇsem cena. Z´ akladn´ı modely se m´alokdy prod´avaj´ı pod 100.000CZK. Naproti tomu softwarovou proxy lze rozbˇehnout na drtiv´e vˇetˇsinˇe bˇeˇznˇe dostupn´eho hardware pro PC nav´ıc pod opensource ˇreˇsen´ım. Viz kap.[3]
2.3
Sedm´ a vrstva
Vyvaˇzov´ an´ı z´ atˇeˇze na 7. vrstvˇe (tak´e zn´am´ y pod application-level LoadBalancing) spoˇc´ıv´a v anal´ yze poˇzadavk˚ u na aplikaˇcn´ı vrstvˇe a jejich distribuci na servery v z´avislosti na obsahu poˇzadavku a vyt´ıˇzen´ı server˚ u. T´ımto je dosaˇzeno poˇzadovan´e u ´rovnˇe QoS. Overhead je pˇri tomto typu vyvaˇzov´ an´ı z´ atˇeˇze z d˚ uvodu dekapsulace aˇz do aplikaˇcn´ı vrstvy znatelnˇe vyˇsˇs´ı, proto m´a v porovn´an´ı se ˇctvrtou vrstvou menˇs´ı ˇsk´ alovatelnost. Nav´ıc se mus´ı pot´ ykat s n´asleduj´ıc´ımi pot´ıˇzemi: • hlaviˇcka komunikace rozˇs´ıˇren´ a pˇres v´ıce paket˚ u • pakety v pˇreh´ azen´em poˇrad´ı • fragmentace • ztracen´e pakety a jejich znovuodesl´an´ı • slouˇcen´ı nespr´ avn´ ych dvojic hlaviˇcka - data Detailn´ı popis tˇechto probl´em˚ u je moˇzn´e nal´ezt na zdroji:[3]
2.4
Kombinace
Jak lze vyvodit z pˇredhoz´ıch odstavc˚ u, neexistuje jedin´ y univerz´aln´ı prostˇredek na jedn´e vrstvˇe, kter´ y by ˇreˇsil vˇsechny probl´emy. Proto je nutn´e kombinovat pˇr´ıstupy dle skuteˇcn´ ych potˇreb a hlavnˇe dle ceny. Ide´ aln´ı architektura strukturovan´eho LoadBalancer-u pro WWW sluˇzby (vˇcetnˇe SSL) je na obr. 2 na str. 4.
3
Obr´ azek 2: Ide´ aln´ı ˇsk´ alovateln´a architektura pro WWW zdroj:[3]
4
3
OpenSource software implementuj´ıc´ı vyvaˇ zov´ an´ı z´ atˇ eˇ ze
Ve svˇetˇe OpenSource se vyskytuje aˇz pˇrekvapivˇe vysok´ y poˇcet software implementuj´ıc´ı vyvaˇzov´an´ı z´ atˇeˇze. Nˇekter´e jsou kvalitnˇe vyvinut´e a pˇripraven´e na nasazen´ı do produkˇcn´ı sf´ery, dalˇs´ı potˇrebuj´ı jeˇstˇe pˇrekonat sv´e nedostatky. V n´ asleduj´ıc´ı kapitole se pokus´ım shrnout nejzn´amˇejˇs´ı z nich.
3.1
HAProxy
HAProxy je volnˇe dostupn´e, velmi rychl´e a spolehliv´e ˇreˇsen´ı poskytuj´ıc´ı vysokou dostupnost, loadBalancing a proxy pro TCP a HTTP aplikace. Je speci´ alnˇe vhodn´ y pro webov´e str´anky kter´e trp´ı velkou z´atˇeˇz´ı a souˇcasnˇe potˇrebuj´ı zachovat perzistenci na sedm´e vrstvˇe. S pouˇzit´ım hardware, kter´ y je dnes re´alnˇe dostupn´ y je moˇzn´e obsluhovat des´ıtky t´ıs´ıc souˇcasn´ ych spojen´ı. 4 Myˇslenka na kter´e HAProxy funguje j´ı ˇcin´ı snadno integrovatelnou do existuj´ıc´ı architektury pˇri vnesen´ı pouze n´ızk´ ych rizik. Pˇritom ovˇsem nab´ız´ı moˇznost nevystavovat kˇrehk´e“ web servery ” na Net. Pod pokliˇ ckou...: HAProxy funguje na principu ud´alostmi ˇr´ızen´eho, jednoprocesov´eho modelu, kter´ y nab´ız´ı podpory pro velk´e mnoˇzstv´ı souˇcasn´ ych spojen´ı pˇri zachov´an´ı velk´ ych rychlost´ı. V´ıceprocesov´e nebo v´ıcevl´ aknov´e modely dok´aˇz´ı pouze vyj´ımeˇcnˇe pracovat s t´ısici spojen´ı kv˚ uli pamˇet’ov´ ym omezen´ım, omezen´ım plynouc´ım z ˇcasovaˇcl syst´emu a zahlcen´ım z´amk˚ u. Model ˇr´ızen´ y ud´ alostmi nem´ a takov´eto probl´emy, protoˇze implementace v user-space dovoluje preciznˇejˇs´ı spr´avu zdroj˚ u a ˇcasu. Probl´emem tohoto pˇr´ıstupu je, ˇze nen´ı dobˇre ˇsk´alovateln´ y na v´ıceprocesorov´ ych syst´emech. Proto mus´ı b´ yt optimalizov´an, aby se bˇehem kaˇzd´eho procesorov´eho cyklu odvedlo co nejv´ıce pr´ ace.5 Podporovan´e OS/platformy • Linux 2.4 on x86, x86 64, Alpha, SPARC, MIPS, PARISC • Linux 2.6 on x86, x86 64, ARM (ixp425), PPC64 • Solaris 8/9 on UltraSPARC 2 and 3 • Solaris 10 on Opteron and UltraSPARC • FreeBSD 4.10 - 8 on x86 • OpenBSD 3.1 to -current on i386, amd64, macppc, alpha, sparc64 and VAX (check the ports) zdoj: [4] Souˇcasn´e typick´e pouˇzit´ı je 1U server vybaven´ y dual-core Opteron/Xeon, kter´ y dos´ahne mezi 15000 a 40000 dotazy/s a nem´ a probl´em saturace 2Gbps. Tento software jsem tak´e otestoval, v´ıce v kapitole 5
3.2
Crossroads
Crossroads je open source LoadBalancer a fail over n´astroj pro TCP orientovan´e sluˇzby. Je to daemon bˇeˇz´ıc´ı v userspace, je bohat´ y na funkce a nab´ız´ı ˇsirok´e moˇznosti nastaven´ı. Umoˇzn ˇuje pooling“ backendu pomoc´ı wakeup“ vol´an´ı, odchyt´av´an´ı n´avratov´ ych hodnot tˇechto vol´an´ı a ” ” pˇr´ısluˇsn´e akce pˇri selh´ an´ı a mnoho dalˇs´ıho. Crossroads je nez´avisl´ y na sluˇzbˇe: m˚ uˇze b´ yt pouˇzit pro HTTP(S), SSH, SMTP, DNS a dalˇs´ı. U HTTP nav´ıc dok´aˇze udrˇzet sessions pro ty procesy, kter´e je potˇrebuj´ı. Ve verzi 2.00 Crossroads proˇsel dramatick´ ymi zmˇenami. Nen´ı jiˇz forkuj´ıc´ı se daemon, ale m´ısto toho se stal v´ıcevl´ aknov´ ym program, kter´ y pracuje pouze v jednom u ´seku pamˇeti. Toto opatˇren´ı v´ yznamnˇe zv´ yˇsilo v´ ykonnost ve srovn´ an´ı s verzemi 1.xx. zdroj:[6] 4 Toto tvrzen´ ı je tˇ eˇ zko uvˇ eˇriteln´ e, ale teoreticky moˇ zn´ e. V praxi se ovˇsem s t´ım, aby na jednom L7 LoadBalancer-u bˇ eˇ zelo tolik spojen´ı nesetk´ ame. 5 Tento pˇ r´ıstup dle m´ eho n´ azoru pˇr´ımo odporuje myˇslence vyvaˇ zov´ an´ı z´ atˇ eˇ ze a ˇsk´ alovatelnosti
5
Obr´ azek 3: Reverzn´ı proxy, zdroj: [5]
3.3
Pound
Pound je program poskytuj´ıc´ı reverzn´ı proxy, LoadBalancer a HTTPS rozhran´ı pro Webov´e servery. Pound byl vyvinut pro distribuci z´atˇeˇze mezi nˇekolik Webov´ ych server˚ u a tak´e aby umoˇznil vhodnou SSL wrapper technologii pro Webov´e servery, kter´e ji neposkytuj´ı samy. Je distribuov´an pod GPL - no warranty licenc´ı a je zdarma k pouˇz´ıt´ı, kop´ırov´an´ı a ˇs´ıˇren´ı. Co Pound nab´ız´ı: • Reverzn´ı proxy: pˇred´ av´ a poˇzadavky od klient˚ u na back-end servery • LoadBalancer: distribuuje poˇzadavky pˇres v´ıce back-end server˚ u, pˇriˇcemˇz zachov´av´a session informace. • SSL wrapper: Dekryptuje HTTPS poˇzadavky od klient˚ u a zas´ıl´a je jako HTTP na server. • HTTP/HTTPS sanitizer: Pound will ovˇeˇruje poˇzadavky a pˇrij´ım´a pouze dobˇre formulovan´e. • fail over-server: Pˇri selh´ an´ı back-endu na nˇej Pound nevys´ıl´a dalˇs´ı poˇzadavky, dokud nedojde k jeho zotaven´ı. • request redirector: poˇzadavky mohou b´ yt pˇred´av´any na r˚ uzn´e back-end servery dle jejich obsahu. Pound je velmi mal´ y software, se snadno sledovateln´ ym auditem pro bezpeˇcnostn´ı probl´emy. M˚ uˇze pracovat v setuid,setgid a chrootovan´ ych prostˇred´ıch. Nepˇristupuje k HDD (kromˇe poˇc´ateˇcn´ıho naˇcten´ı certifik´ at˚ u pˇri startu). zdroj: [7]
6
4
Testov´ an´ı
Pro testov´ an´ı jsem vybral software HAProxy z d˚ uvodu jeho velk´e rozˇs´ıˇrenosti a snadn´emu nasazen´ı. Samotn´ y test jsem prov´ adˇel ve virtualizovan´em prostˇred´ı, pˇriˇcemˇz konfigurace jednotliv´ ych stroj˚ u“ ” byla zcela shodn´ a. Provedl jsem i s´erii jednoduch´ ych benchmark˚ u nejdˇr´ıve na jednom serveru: obr. 4. Na tomto serveru byla um´ıstˇena statick´a data (php + obr´azky) i MySQL server. Cluster o promˇenn´em poˇctu uzl˚ u (node 1-3) mˇel spoleˇcn´e u ´loˇziˇstˇe statick´ ych dat, na kter´em byl um´ıstˇen i MySQL server: obr. 5. Testov´ an´ı prob´ıhalo zas´ıl´ an´ım s´erie HTTP poˇzadavk˚ u na zobrazen´ı str´anky a mˇeˇren´ım doby zpracov´ an´ı cel´e s´erie. Jeden test spoˇc´ıval v zobrazen´ı tituln´ı str´anky aplikace Wordpress. Dalˇs´ı test byl v´ıce zamˇeˇren na mysql, ˇslo o jednoch´ y SELECT s ORDER BY tabulku s cca 8000 z´aznamy, v´ ysledek se vyp´ıˇse pˇr´ımo na st´ anku, ˇc´ımˇz se zat´ıˇz´ı uzel i spoleˇcn´e u ´loˇziˇstˇe. Detailn´ı popis instalace a konfigurace server˚ u a prov´ aden´ı benchmark˚ u je uveden v souboru pˇriloˇzen´em k t´eto pr´aci. V´ ysledky z benchmark˚ u jsou graficky zn´ azornˇeny na obr. 6 a 7
Obr´azek 4: Single node
Obr´ azek 5: Testovan´a sestava
7
Obr´ azek 6: SQL dotaz volan´ y z PHP na sd´ılenou datab´azi obsahuj´ıc´ı ORDER BY na nˇekolik tis´ıc ˇr´ adk˚ u
Obr´ azek 7: Benchmark 2 - naˇcten´ı tituln´ı str´anky RS Wordpress
8
5
Z´ avˇ er
Celkovˇe v´ ysledky testov´ an´ı odpov´ıdaj´ı obecn´ ym pˇredpoklad˚ um, ˇze zvyˇsov´an´ım poˇctu pracuj´ıc´ıch uzl˚ u doch´ az´ı ke sniˇzov´ an´ı celkov´eho ˇcasu zpracov´an´ı. Vyj´ımkou byla vyˇsˇs´ı doba zpracov´an´ı u tˇr´ı uzl˚ u neˇz u dvou na obr. 6. Tuto nesrovnalost pˇripisuji zpoˇzdˇen´ı vznikaj´ıc´ım na s´ıt’ov´e komunikaci mezi uzly a datov´ ym u ´loˇziˇstˇem. Tak´e je moˇzn´ y vliv zkreslen´ı vznikl´eho prac´ı s virt´aln´ımi stroji. Po srovn´ an´ı v´ yhod a nev´ yhod testovan´e technologie vyvaˇzov´an´ı z´atˇeˇze, bych jej´ı nasazen´ı rozhodnˇe doporuˇcil.
9
Seznam obr´ azk˚ u 1 2 3 4 5 6 7
The OSI Reference Model, zdroj: [1] . . . . . . . . . . . . . . . . . Ide´ aln´ı ˇsk´ alovateln´ a architektura pro WWW zdroj:[3] . . . . . . . . Reverzn´ı proxy, zdroj: [5] . . . . . . . . . . . . . . . . . . . . . . . Single node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Testovan´ a sestava . . . . . . . . . . . . . . . . . . . . . . . . . . . . SQL dotaz volan´ y z PHP na sd´ılenou datab´azi obsahuj´ıc´ı ORDER tis´ıc ˇr´ adk˚ u. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Benchmark 2 - naˇcten´ı tituln´ı str´anky RS Wordpress . . . . . . . .
. . . . . . . . . . . . . . . . . . . . BY na . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . nˇekolik . . . . . . . . . .
2 4 6 7 7 8 8
Reference [1] The OSI Reference Model [online]. 2010 [cit. 2011-12-11]. ISO Model.Dostupn´e z WWW:
. [2] Load balancing [online]. 2008 [cit. 2011-12-11]. Network Load Balancing. Dostupn´e z WWW:
. [3] Making applications scalable with Load Balancing [online]. 2006 [cit. 2011-12-14]. Willy Tarreau’s articles. Dostupn´e z WWW . [4] HAProxy [online]. 2011 [cit. 2011-12-14] The Reliable, High Performance TCP/HTTP Load Balancer. Dostupn´e z WWW . [5] Poˇc´ıtaˇcov´ y cluster [online]. 2011 [cit. 2011-12-14]. Poˇc´ıtaˇcov´ y cluster. Dostupn´e z WWW . [6] Crossroads [online]. 2011 [cit. 2011-12-14]. Crossroads. Dostupn´e z WWW . [7] Pound [online]. 2011 [cit. 2011-12-14]. Pound - Reverse-Proxy and Load-Balancer. Dostupn´e z WWW .
10