Koormusjaotus

Allikas: Vikipeedia
Diagramm näidis kuidas koormusjaotur töötab

Koormusjaotur (ingl. load balancing) on ülesannete kogumi jaotamine ressursside (arvutusüksuste) vahel, eesmärgiga muuta nende üldine töötlemine tõhusamaks. Koormusjaotur võib optimeerida reaktsiooniaega ja vältida mõne arvutussõlme ebaühtlast ülekoormamist, samal ajal kui teised arvutussõlmed jäävad tühikäiku

Koormusjaoturi eelised[1][muuda | muuda lähteteksti]

Koormusjaotur on ülioluline mehhanism, mis haldab ja reguleerib tõhusalt Interneti-liikluse voogu rakendusserverite ja nende kasutajate või klientide vahel.

Rakenduse saadavus[muuda | muuda lähteteksti]

Serveri rike või hooldus võib põhjustada rakenduse seisaku pikenemist, mille tulemuseks on rakendus kasutajatele kättesaamatu. Koormusjaotur suurendab süsteemi vastupidavust, tuvastades serveriprobleemid ja suunates kliendi liikluse ümber töötavatasse serveritesse.

  • Saad käivitada rakendusserveri hooldust või uuendusi ilma rakenduse seisakuta.
  • Tagab varundussaitidele suurõnnetus taastumist.
  • Teeb tervisekontrolle ja väldib probleeme, mis võib põhjustada seisakuid.


Rakenduse skaleeritavus[muuda | muuda lähteteksti]

Koormusjaoturit kasutatakse võrguliikluse tõhusaks jaotamiseks paljude serverite vahel. See võimaldab rakendustel tõhusalt hallata suurt hulka kliendipäringuid.

  • Hoiab ära bottleneck-e serverites.
  • Ennustab rakenduste liiklust, et saaksid vajadusel erinevaid servereid lisada või eemaldada.
  • Lisab süsteemile liiasust, et saaksid enesekindlalt skaleerida.


Rakenduse turvalisus[muuda | muuda lähteteksti]

Koormusjaotur on integreeritud turvafunktsioonidega, et pakkuda Interneti-rakendustele täiendavat kaitsetaset. Need on väärtuslikud ressursid hajutatud teenuse keelamise rünnakute leevendamiseks, kus pahatahtlikud osalejad koormavad rakendusserverit suure hulga samaaegsete päringutega, mis põhjustab serveri seisakuid.

  • Jälgib liiklust ja blokeerib pahatahtliku sisu.
  • Mõju minimeerimiseks suunab ründeliikluse automaatselt ümber mitme taustaserverile.
  • Täiendab turvalisuse tagamiseks suunab liikluse läbi võrgu tulemüüride rühma.


Rakenduse jõudlus[muuda | muuda lähteteksti]

Koormusjaotur suurendab rakenduste jõudlust, suurendades reageerimisaega ja minimeerides võrgu latentsust.

  • Rakenduse jõudluse parandamiseks jaotab koormus serverite vahel ühtlaselt.
  • Viiteaja vähendamiseks suunab kliendi taotlused geograafiliselt lähemale asuvasse serverisse.
  • Tagab füüsiliste ja virtuaalsete andmetöötlusressurssie töökindlust ja jõudlust.


Kasutusjuhtumid[muuda | muuda lähteteksti]

Koormusjaotur algoritme kasutatakse laialt veebisaitide HTTP-päringute haldamisel. Võimaldades kasutada suurt hulka päringuid sekundis koos tõhusa probleemide lahendamisega paralleelsete arvutuste abil[2]


Koormusjaotur jagatavad ülesanded

Koormusjaoturi erinevad algoritmid[muuda | muuda lähteteksti]

Koormusjaoturit kasutatakse sageli ühe Interneti-teenuse pakkumiseks mitmest serverist, tuntud kui serverifarm.[3] Tavaliselt tasakaalustatud koormusega süsteemid on näiteks tuntud suure ribalaiusega failiedastusprotokolli (FTP) saidid, veebisaidid, võrgu edastusprotokolli (NTP) serverid, domeeninimesüsteemi (DNS) serverid ja andmebaasid.

Round-robin koormusjaotur[muuda | muuda lähteteksti]

Round-robin algoritm peetakse koormusjaoturi lihtsamaiks meetodiks. See jaotab klientide päringuid rakenduseserverite vahel ühtlaselt, järgides otsest pöörlemismustrit. Näiteks kui rakendusservereid on kolm, suunatakse esimene kliendipäring esimesse serverisse, teine päring suunatakse teisele serverile, kolmas päring kolmandale serverile, neljas päring tagasi esimesse serverisse ja nii edasi.[4]

Weighted Round-robin[muuda | muuda lähteteksti]

Weighted Round-robin on Round-robini koormusjaoturi meetodi täiustus. Selle korral määrab võrguadministraator igale kogumis olevale serverile fikseeritud arvulise kaalukuse. Suurima efektiivusese ja võimsusega serverile võib anda kaalukusväärtuseks 100. Teisest küljest võib poole väiksema töötlemisvõimsusega serverile määrata kaalukuseväärtuse 50 ja nii edasi farmi ülejäänud serverite puhul. Suurema kaalukusega serverid saavad suurema arvu päringuid. Päringute jaotamine järgib siiski tsüklilist mustrit, suurema kaalukusega servitele määratakse igas tsüklis rohkem seansse.[5]

DNS koormusjaotur[muuda | muuda lähteteksti]

DNS-i koormusjaotur on meetod, mis jaotab sissetuleva võrguliikluse mitme serveri vahel läbi, parandades seeläbi rakenduse või teenuse kättesaadavust jõudlust. Kui server pole saadaval või on ülekoormatud, määrab DNS-i lahendaja teistele serveritele ikkagi IP-aadressid, tagades liiasuse ja tõrkesiirde võimalusi[6]

Source IP Hash koormusjaotur[muuda | muuda lähteteksti]

Source IP Hash koormusjaotur meetod kasutab kliendi päringu lähte- ja sihtkoha IP-aadresse, et luua eraldiseisev räsivõti, mis võimaldab kliendi konkreetsele serverile määrata. Juhul, kui seanss katkeb, saab võtme uuesti luua, tagades, et klient suunatakse tagasi algsesse serverisse.[7]

Static Load Balancing[8][muuda | muuda lähteteksti]

Staatiline koormusjaotur meetod jaotab liiklust serverite vahel, võtmata arvesse süsteemi või serverite endi hetkeseisu. Need meetodid kasutavad fikseeritud algoritme, mis jaotab liikluse ühtlaselt, kas etteantud järjekorras või juhuslikult, rühmab igasse serverisse. Teisest küljest võtab dünaamiline koormusjaotur algoritmid arvesse süsteemi ja iga üksiku serveri hetkeseisundit, kasutades seda teavet liikluse jaotmaise määramiseks.

Dünaamiline koormusjaotur[muuda | muuda lähteteksti]

Dünaamilised koormusjaoturi tasakaalustamisse algoritmid analüüsivad enne liikluse serverite hetkeseisukorda.


Least Connection koormusjaotur[muuda | muuda lähteteksti]

Least Connection koormusjaotur on meetod kliendi päringute jagamiseks rakendusserveritele, mis põhineb serveril, millel on kõige vähem aktiivseid ühendusi kui päring esitatakse. Juhtudel, kui rakendusserveritel on sarnased spetsifikatsioonid, võib üks server olla pikemaajaliste ühenduste tõttu ülekoormatud. Arvestades aktiivsete ühenduste koormust, sobib see algoritm hästi, kus sissetulevad päringud on erineva ühenduse kestusega ning serverid on töötlemisvõimaluste ja saadaolevate ressursside poolest sarnased[9]

Least response time meetod[10][muuda | muuda lähteteksti]

Koguaega, mis serveril kulub sissetulevate päringute töötlemiseks ja vastuse saatmiseks, nimetatakse reageerimisajaks. Võttes arvesse nii serveri reageerimisaega kui ka aktiivseid ühendusi, tuvastab väikseima reaktsiooniaja meetod optimaalse serveri. Koormusejaoturid kasutavad seda algoritmi, et tagada kiirem teenindus kõigile kasutajatele.

Staatiline Vs Dünaamiline koormusjaotur[11][muuda | muuda lähteteksti]

Staatilise koormusjaoturi eelised[muuda | muuda lähteteksti]

  • Rakendamise lihtsus: staatilist koormusejaotamist on selle pideva konfiguratsiooni tõttu lihtsam seadistada ja hallata, mis muudab selle hooldamise lihtsamaks.
  • Usaldusväärsus: keskkondades, kus töökoormus on ühtlane ja prognoositav, võib staatiline koormusjaotur olla usaldusväärtsam, kuna see jaotab liiklust vastavalt etteantud seadistusele.
  • Vähendatud arvutuslikud üldkulud: staatiline koormusejaotur nõuab tavaliselt vähem arvutusressursse, kuna liiklusjaotus on fikseeritud ega vaja pidevat jälgimist ega kohandamist.

Staatilise koormusjaoturi puudused[muuda | muuda lähteteksti]

  • Vähese kohanemisvõime: paindumatus põhjustab suutmatust kohaneda erinevate tingimustega, nagu liikluse äkilised hüpped või serveri võimsuse kõikumised, mis viib ebatõhusa kasutamiseni.
  • Ülekoormusoht: töökoormuse ebaühtlane jaotus võib põhjustada teatud serverite ülekoormamise ohtu, jättes samal ajal teised alakautatuks, mõjutades süsteemi üldist jõudlust.
  • Piiratud tõrketaluvus: staatilised koormusejaoturi mehhanismid võivad serveri tõrgetega toime tulla, kuna need ei kohandu dünaamiliselt ressursside saadavuse muutustega.

Dünaamilise koormusjaoturi eelised[muuda | muuda lähteteksti]

  • Dünaamiline koormusjaotur suudab reaalajas kohaneda muutuvate olukordadega, muutes selle sobivaks mitmekesise ja ettearvamatu töökoormusega keskkondades.
  • See optimeerib ressursside kasutamist, suunates liikluse kõige kättesaadavamatele ja võimekamatele serveritele, parandades seeläbi süsteemi jõudlust.
  • Dünaamiline koormusjaotur on väga skaleeritav, kuna see suudab tõhusalt jaotada töökoormust erineva arvu serverite vahel, võttes arvesse suuruse ja võimsuse muutusi.

Dünaamilise koormusjaoturi puudused[muuda | muuda lähteteksti]

  • Dünaamilise koormusjaoturi juurutamiseks on vaja keerulisi algoritme ja mehhanisme, mis võib suurendada keerukust.
  • Pideva jälgimise ja reaalajas reguleerimise vajadus võib põhjustada arvutuslike kulude suurenemist, mis mõjutab süüstemi jõudlust.
  • Dünaamiliste koormusjaoturi algoritmide ja parameetrite peenhäälestus tekitab konfiguratsioonis probleeme, mis võib viia ebaoptimaalsete tulemusteni, kui seda ei tehta õigesti.


Koormusjaotur tüübid[12][muuda | muuda lähteteksti]

Koormusjaoturit saab liigitada kolme põhiklassifikatsiooni kirteeriumide alusel, mida koormusjaotur kliendi liikluse ümbersuunamise taotluses uurib

Rakenduse koormusjaotur[muuda | muuda lähteteksti]

Mitut serverit, mis on pühendatud ühele rakenduse funktsioonile, kasutatakse keerukates kaasaegsetes rakendustes, mida sageli toetavad mitmed serverifarmid. Liikluse tõhusaks haldamiseks analüüsivad rakenduste koormusjaoturid päringu sisu näiteks HTTP päised või SSL-i seansi ID-d ja suunavad selle vastavalt ümber.

Võrgukoormusjaotur[muuda | muuda lähteteksti]

Võrgukoormusejaoturid analüüsivad IP-aadresse ja täiendavad võrguandmeid, et liiklust tõhusalt ümber suunata. Nad jälgivad rakenduste liikluse päritolu ja suudavad määrata fikseeritud IP-aadressi mitmele serverile. Koormusjaoturid kasutavad nii staatilisi kui ka dünaamilisi koormusjaotur algoritme.



Viited[muuda | muuda lähteteksti]

  1. What are the benefits of load balancing?. aws.amazon.com. Vaadatud 1. mai 2024
  2. Maurice, McMullin (31. jaanuar 2023). "Algorithms explained". Vaadatud 30. aprill 2024
  3. "" What is load-balancing?. aws.amazon.com. Vaadatud 30. aprill 2024
  4. Maurice, McMullin (31. jaanuar 2023). "" Round-robin Algorithm. Vaadatud 30. aprill 2024
  5. "" Weighted Round-robin. kemptechnologies.com. Vaadatud 30. aprill 2024
  6. "DNS Load Balancing". f5.com. Vaadatud 30. aprill 2024
  7. "Source IP Hash Algorithm" f5.com. Vaadatud 30. aprill 2024
  8. Static Load Balancing. aws.amazon.com. Vaadatud 1. mai 2024
  9. "Least Connection Algorithm". kemptechnologies.com. Vaadatud 30. aprill 2024
  10. Least Response Time Method. aws.amazon.com. Vaadatud 1. mai 2024
  11. Static vs Dynamic load balancing. geeksforgeeks.org. Vaadatud 1. mai 2024
  12. What are the types of load balancing technology?. aws.amazon.com. Vaadatud 1. mai 2024