ČEKANJA POMOĆU ERLANG DISTRIBUCIJA ZA WEB APLIKACIJE€¦ · Teorija redova čekanja Računao...
Transcript of ČEKANJA POMOĆU ERLANG DISTRIBUCIJA ZA WEB APLIKACIJE€¦ · Teorija redova čekanja Računao...
PRIMJENA RAČUNA REDOVA ČEKANJA POMOĆU ERLANG DISTRIBUCIJA ZA WEB APLIKACIJE
Dubravko MiljkovićHrvatska elektroprivredaZagreb, Vukovarska 37
19. listopad 2012. HROUG 2012 2
UVOD
Ograničeni broj uslužnih kanala (ponekad samo jedan)Kako procijeniti dopušteno opterećenjeKako odrediti potreban broj uslužnih kanalaKako odrediti potrebnu brzinu usluge uslužnih kanala
19. listopad 2012. HROUG 2012 3
UVOD
Ponekad određena aktivnost može se na jednom serveru odvijati samo za jednog korisnikaRješenje
Povećati broj servera (npr. Reportsengine, cluster node itd.)Skratiti vrijeme aktivnosti (promjena metode, koda itd.)
19. listopad 2012. HROUG 2012 4
AGNER KRARUP ERLANGDanski matematičar, statističar i inženjer (1878 - 1929)Teorija redova čekanjaRačunao udio korisnika koji moraju čekati na uspostavu poziva van sela budući da su sve linije zauzeteVjerojatnost neuspješnog poziva je prihvaćena odBritish Post Office kao osnova za proračun kapaciteta telefonskih postrojenja
19. listopad 2012. HROUG 2012 5
TELEKOMUNIKACIJE
Velika primjena u telekomunikacijama
Telefonske centraleCall centri
Dolazak telefonskih poziva slijedi Poissonovu razdiobuVrijedi i za korisnike web aplikacija
19. listopad 2012. HROUG 2012 6
REDOVI ČEKANJASustav poslužuje dolazne zahtjeveSustav je konačnih mogućnostiPostoji red čekanja dok se ne oslobodi uslužni kanal
19. listopad 2012. HROUG 2012 7
ERLANG DISTRIBUCIJAKontinuirana distribucija, ima pozitivne vrijednosti za sve realne brojeve veće od nuleDefinirana sa dva parametra
shape krate λ
Posebni slučaj Gamma distribucijeDogađaji koji se javljaju neovisno s nekom prosječnom frekvencijom modelirani su kao PoissonovprocesVremena čekanja između k pojava događaja su distribuirana u skladu s Erlang distribucijom
( ) ( )!1,;
1
−=
−−
kexkxf
xkk λλλ
19. listopad 2012. HROUG 2012 8
ERLANG DISTRIBUCIJAAgner Krarup Erlang puno se bavio modeliranje komunikacijskog prometaPostoje još dvije Erlang distribucije koje se koriste za modeliranje prometa: Erlang B i Erlang COdustaje se od neopsluženih zahtjeva za uslugom, "target service” (Erlang B formula)Neopsluženi zahtjevi za uslugom ulaze u red čekanja sve dok se ne opsluže (Erlang C formula)
19. listopad 2012. HROUG 2012 9
WEB APLIKACIJEKoriste ograničene računarske resurse
Forms sesijeReports serveriHost komandeKomunikacija s File server-omKomunikacija s Print server-om
PrinteriPrint job-ovi i red čekanja
Terminal serverAplikacije koje dopuštaju pokretanje samo jedne instanceLicence
19. listopad 2012. HROUG 2012 10
SYSTEM STRESS TESTINGTestiranje performansi sustava pod opterećenjemTestiranje je fokusirano na robusnost aplikacije, raspoloživost i pouzdanost pod ekstremnim uvjetimaPronalazi odgovore na pitanja:
Koje vrijeme odziva će postizati korisnici?Kako dugo sustav može izdržati povećanu aktivnost korisnika?Kako često će se korisnici susretati s pogreškama na sustavu i trebati se rekonektirati?Može li se sustav vratiti sam u normalno stanje nakon stress testa s abnormalnim opterećenjem?
19. listopad 2012. HROUG 2012 11
PERFORMANCE/LOAD/STRESS TESTER
Load test pod izuzetnim opterećenjem – stress testUređaj (kombinacija hardwarei software) koje simulira opterećenje sustavaKoristi se za određivanje stabilnosti sustava pod opterećenjem Simulira simultani dolazak korisnika sa odvojenih PC strojeva (različite IP adrese)Vrlo dobre procjene, ali
Skupi uređajiAlternativa je skupi najam
19. listopad 2012. HROUG 2012 12
ERLANGBezdimenziona jedinica koja se koristi u telefoniji kao statistički pokazatelj telekomunikacijskog prometaDefinira se kao iskorištenost kanala u vremenu"Erlang" je korišten u skandinavskim zemljama i označava jedinicu telefonskog prometaMeđunarodno priznanje slijedilo je nakon kraja drugog svjetskog rata
19. listopad 2012. HROUG 2012 13
ERLANG
Primjer:30 poziva po satuProsječno trajanje poziva 5 min
Minuta prometa u satu = Broj poziva x TrajanjeMinuta prometa u satu = 30 x 5Minuta prometa u satu = 150Sati prometa u satu = 150 / 60Sati prometa u satu = 2.5 Erlanga
19. listopad 2012. HROUG 2012 14
ERLANGKoliko je elemenata potrebno za pružanje usluge bez predimenzioniranja
Potrebno definirati ciljne vrijednosti:GoS - Grade of ServiceQoS - Quality of Service
ParametriVjerojatnost blokiranja usluge
p=0.05 prihvatljivop=0.01 dobro
Vrijeme čekanja na uslugu (npr. 80% zahtjeva ispod 10s)Vrijednosti potrebno je definirati za Busy Hour
Glavni prometni sat (sat s najvećim prometom, peak hour)Najveći broj zahtjeva za uslugom (worst case analysis)BHT (Busy Hour Traffic)
19. listopad 2012. HROUG 2012 15
ERLANG B
pri čemu jepB - vjerojatnost da će zahtjev biti odbijen
(vjerojatnost da su svi poslužitelji zauzeti)m – broj poslužiteljaA - promet (Erlang-a)
( )∑=
=m
i
ip
mp
pB
iA
mA
mAp
0 !
!,
19. listopad 2012. HROUG 2012 16
ERLANG C
Λ – intenzitet dolazaka(prosječan broj korisnika koji
pristižu u jedinici vremena)
pri čemu jepC - vjerojatnost da će zahtjev
biti odbijen(vjerojatnost da su svi poslužitelji zauzeti)
m – broj poslužiteljaA - promet (Erlang-a)
( )∑−
=⎟⎟⎠
⎞⎜⎜⎝
⎛−+
=1
0 !1!
,m
i
ippm
p
mp
pC
iA
mA
mA
AmAp
19. listopad 2012. HROUG 2012 17
ERLANG KALKULATORIBesplatni WEB kalkulatori
Jednostavni za korištenjeZadovoljavaju većinu potrebaNe zahtijevaju detaljno poznavanje teorije, samo operativno
specifikacija prometa u Erlang jedinicama kod nekih kalkulatora)
Erlang BExtended Erlang BErlang C
ProgramiErlang CC Modeler Lite – besplatanErlang CC Modeler Pro
19. listopad 2012. HROUG 2012 18
ERLANG B
WEB Erlang B kalkulatorBusy Hour Traffic (Promet glavnog sata) Vjerojatnost blokiranje prometa ovisno o opterećenjuBroj uslužnih agenata za prihvatljivu vjerojatnosti blokiranja
19. listopad 2012. HROUG 2012 19
EXTENDED ERLANG B
WEB Extended Erlang B kalkulatorDodatna mogućnost specificiranja Recall Factor-aKorisnici koji nakon neuspjeha odmah pokušavaju ponovo (immediate retry attempt)Aplikacija sa ugrađenom petljom za retry
19. listopad 2012. HROUG 2012 20
ERLANG C
WEB Erlang C kalkulatorTreba specificirati barem tri parametraPri tome specificirati barem dva od prva tri polja unosa
19. listopad 2012. HROUG 2012 21
ERLANG CC MODELER LITE
Za detaljniju analizu postoje posebni programiGrafički prikazOčekivani boravak u redu čekanjaProsječno čekanje ovisno o broju uslužnih agenata
19. listopad 2012. HROUG 2012 22
VARIJACIJE PROMETAPromet nije konstantanVarira tijekom dana i noćiAnaliza moguća uz pomoć naprednijeg Erlangsoftware-a (Erlang CC Modeler Pro)
19. listopad 2012. HROUG 2012 23
ERLANG CC MODELER PRO
Uključuje dnevne varijacije prometaBroj potrebnih agenata tijekom dana
19. listopad 2012. HROUG 2012 24
KADA KORISTITI ERLANG B,A KADA ERLANG C
ERLANG BUsluga je blokirana, ali korisnik ne ulazi u red čekanja
ERLANG CUsluga je blokirana, korisnik ulazi u red čekanja dok se ne oslobodi uslužni kanal (agent)
19. listopad 2012. HROUG 2012 25
DIMENZIONIRANJE iASSERVERA – FORMS SESIJE
Ukupan broj uspostava Forms sesija (Busy Hour)Prosječno trajanje Forms sesijeNajveći istovremeni broj korisnika Forms sesijaDopuštena vjerojatnost blokiranja kod uspostave sesijeErlang B
Određivanje ukupnog broja uspostavasesija tijekom Bussy hour-a
Određivanje vjerojatnosti blokiranjakod uspostave sesije za zadani promet
BHT – produkt broja uspostava sesijai prosječnog trajanja sesije
19. listopad 2012. HROUG 2012 26
REPORTS SERVERI
In-process reports serverNa starim iAS-ima 1.0.2 Forms 6in-process reports server može opsluživat istovremeno samo jedan job(ekvivalent jedne reports engine)
Stand alone reports serverKako odrediti broj reports engine-a Premalo engines uzrokuje formiranje repovaPreviše engines nepotrebno zauzima memoriju instance iAS-a (smanjuje broj mogućih Formssesija)
19. listopad 2012. HROUG 2012 27
REPORTS SERVERIProcjena vremena trajanja report-a uz pomoć Taskmanager-a (Sysinternals)Ulazni podataka za Erlang kalkulator
19. listopad 2012. HROUG 2012 28
DIMENZIONIRANJEREPORTS SERVERA
Primjer 11000 reporta po satuvrijeme izvođenja reporta 10s1 reports engine
19. listopad 2012. HROUG 2012 29
DIMENZIONIRANJEREPORTS SERVERA
Primjer 21000 reporta po satuvrijeme izvođenja reporta 10s3 reports engine
19. listopad 2012. HROUG 2012 30
DIMENZIONIRANJEREPORTS SERVERA
Primjer 31000 reporta po satuvrijeme izvođenja reporta 10s7 reports engine
19. listopad 2012. HROUG 2012 31
DIMENZIONIRANJEREPORTS SERVERA
Primjer 41000 reporta po satuvrijeme izvođenja reporta 10sService level: 98% čeka manje od 5sPotrebno 6 agenata (reports engines)
19. listopad 2012. HROUG 2012 32
HOST COMMAND
Istovremeno pokretanje instanci programa pomoću HOST komandeDrugo pokretanje ne uspijevaRun-as (?), Sysinternals utilities
Ponekad pomaže RENAME trik1st instance -> run original App.exe2nd instance -> run coppied App_1stCopy.exe3rd instance -> run 2nd coppied App_2ndCopy.exe
19. listopad 2012. HROUG 2012 33
HOST COMMANDPonekad nije moguće istovremeno pokrenuti više istih HOST komandi na istom serveru
Najveći broj korisnika aplikacije na nodu uz prihvatljivo blokiranje zahtjevaPreostaje nam smanjivanje vremena koje zauzima dotična HOST komanda
Npr. 100 zahtjeva po satu, trajanje zahtjeva 5 sekundiVjerojatnost blokiranja uz 1 uslužni kanal čak 12% (u praksi previše!)Rješenje: skratiti vrijeme komande ili raspršiti korisnike po nodovima NLB clustera
19. listopad 2012. HROUG 2012 34
FILE SERVERJedan korisnik s istog iAS-a može pristupiti na file serverNe mogu dva korisnika istovremeno s istog iAS-aMože i više njih, ali ne sa istog iAS-a (NLB)Programi za PDF pretraživanje instalirani na File Serveru mogu dodati problematiku HOST komandeNpr. Dopuštena vjerojatnost blokiranja p=0.05
BHT 0.05Ekvivalentno 200 zahtjeva u trajanju 0.9 s ili100 zahtjeva od 1.8 s
19. listopad 2012. HROUG 2012 35
PRINT SERVERJedan korisnik sa istog iAS-a može pristupiti na print serverNe mogu dva korisnika istovremeno s istog iAS-aMože i više njih, ali ne sa istog iAS-a (NLB)Koliko dugo smije trajati komunikacija s PrintServerom za dati promet i prihvatljivu vjerojatnost blokiranja zahtjeva za komunikacijomErlang B
19. listopad 2012. HROUG 2012 36
PRINTANJE
Ispis na jedan ili više (linijski?) štampačaFormiranje redova čekanja
Koliko štampača trebamoKoliko čekamo u redu za ispis
19. listopad 2012. HROUG 2012 37
PRINTANJEBroj print job-ova po satu (busy hour)Prosječno trajanje print job-aBroj raspoloživih printeraErlang C (postojanje reda čekanja - queue)
19. listopad 2012. HROUG 2012 38
NLB CLUSTERViše kanala usluge možemo postići i formiranjem NLB clusteraKad iscrpimo mogućnost smanjivanja vremena usluge po kanalu možemo dodati novi kanal dodavanjem novog noda u NLB cluster
19. listopad 2012. HROUG 2012 39
TERMINAL SERVERPokušaj istovremenog pokretanje instance programa koji za to nije predviđenOdređivanje mogućnosti kolizijeUporaba clustera s više nodovaErlang B
Npr.Dopuštena vjerojatnost blokiranja 0.05
BHT 0.05Ekvivalentno 5 zahtjeva u trajanju 36s
19. listopad 2012. HROUG 2012 40
TERMINAL SERVERUporaba terminal servera s ograničenim brojem licenciProsječno trajanje sesijeBroj licenci (concurrent)Vjerojatnost blokiranja usluge (log-in)Erlang B (nema reda čekanja)
Primjenjivo i na neke druge klijent-server programske pakete s ograničenim brojem concurrent licenci
19. listopad 2012. HROUG 2012 41
ZAKLJUČAK
Omogućuje inicijalno dimenzioniranje sustava koje se kasnije fino podesiPrimjena Erlang B i Erlang C kalkulatoraProcjena broja korisnika za prihvatljivo vrijeme čekanjaProcjena vremena čekanja korisnika pod opterećenjemProcjena potrebnog broja uslužnih kanalaProcjena vjerojatnosti blokiranja usluge
HVALA!