Koormuse jaotamise ka­su­ta­mine võimaldab jaotada serverile juur­de­pääsu ühtlaselt erinevate riist­va­ra­res­surs­side vahel tehnilise lahenduse abil, mida ni­me­ta­takse koormuse jaotajaks. See tagab stabiilse ühen­dus­kii­ruse, mis on po­tent­siaal­sete klientide ja klientide leidmisel otsustava täht­su­sega.

Mis on koormuse jaotamine?

Koormuse jaotamine on eriti levinud ser­ve­ri­teh­no­loo­gias ning tähendab meetodit, mille puhul päringud jao­ta­takse taustal erinevate serverite vahel nii, et kasutajad seda ei märka. Selleks ka­su­ta­ta­vat koormuse jaotajat võib rakendada nii riist- kui ka tark­va­rana. See seostab domeeniga mitu serverit ilma aad­res­si­konf­likte põh­jus­ta­mata ning sellele pääseb ligi domeeni avaliku aadressi kaudu.

Alluvate vee­bi­ser­ve­rite nimedele lisatakse do­mee­ni­lõ­pud www1, www2, www3 jne. See võimaldab koormuse jao­ta­misel tagada vee­bi­saidi kät­te­saa­da­vuse sama URL-i all, kuigi selle taga töötab mitu serverit. See hoiab ära serverite üle­koor­muse, kuna välised päringud jao­ta­takse klastri erinevate füü­si­liste masinate vahel. Kasutajad ei märka seda ta­va­li­selt, kuna päringute jaotamine toimub taustal kee­ru­liste algo­ritmide abil.

Koormuse jaotamine võib olla oluline ka väl­jas­pool vee­bi­ser­ve­rite konteksti, näiteks mitme prot­ses­soriga arvutite puhul. Sellistel juhtudel tagab koormuse jaotaja, et koormus jaotub ühtlaselt erinevate prot­ses­so­rite vahel, et saavutada suuremat ar­vu­tus­võim­sust. Koormuse jaotajaid on vaja ka selliste kon­tei­ne­ri­tark­vara la­hen­duste ka­su­ta­misel nagu Ku­ber­ne­tes. Seal tagavad need, et töö­koor­mus jaotub tõhusalt erinevate podide vahel.

Kuidas toimib koormuse jaotamine?

Vee­bi­ser­ve­rile suunatud päringud, näiteks le­he­kül­gede vaa­ta­mised, töö­del­dakse esmalt koormuse jaotajas. Seejärel võtab koormuse jaotaja üle koormuse jaotamise, suunates juur­de­pää­su­püüd­lu­sed edasi eri­ne­va­tele ser­ve­ri­tele. Koormuse jaotaja võib olla ra­ken­da­tud riist- või tark­va­rana, kuid põhimõte jääb samaks: päring jõuab koormuse jaotajani ning sõltuvalt ka­su­ta­ta­vast meetodist suunab seade või tarkvara andmed edasi as­ja­oma­sele serverile.

Tehniline aluseks on DNS-prot­se­duur: kasutajad pääsevad vee­bi­sai­dile ligi ainult URL-i kaudu. See tei­sen­da­takse DNS-i abil IP-aad­res­siks, mis suunab seejärel koormuse jaotajale. Ideaal­ju­hul jääb see protsess ka­su­ta­ja­tele mär­ka­ma­tuks.

Image: Diagram of how load balancing works
A load balancer dist­ri­bu­tes the load of client accesses over the internet or web to various servers.

Millised on ta­sa­kaa­lus­ta­tud koormuse jaotamise eelised?

Hästi pai­gal­da­tud koormuse jaoturi kolm peamist eelist on järgmised:

  • Op­ti­mee­ri­tud laa­di­mis­ajad: liikluse jaotamine mitme serveri vahel võib lühendada laa­di­mis­aegu isegi siis, kui sa­ma­aeg­selt esi­ta­takse palju päringuid.
  • Suurem vea­to­le­rant­sus: koormuse ta­sa­kaa­lus­taja suurendab vea­to­le­rant­sust, kuna aeglase serveri liiklus suu­na­takse au­to­maat­selt klastri teistele ser­ve­ri­tele. Kui server ei ole kät­te­saa­dav, jääb veebisait endiselt kät­te­saa­da­vaks.
  • Liht­sus­ta­tud süsteemi hooldus: koormuse jaotamine toetab oluliselt ser­ve­ri­süs­teemi hool­da­mist. Kon­fi­gu­rat­sioone ja uuendusi saab teha serverite töötamise ajal ilma märgatava jõudluse kaotuseta. Koormuse jaotaja tuvastab hool­dus­olu­kor­rad ja suunab päringud vastavalt ümber.

Millised on koormuse jaotamise erinevad tüübid?

Sis­se­tu­le­vate päringute jaotamine sõltub valitud algo­rit­mist. Koormuse jaotamise levinumad algo­rit­mid on: Round Robin, kaalutud Round Robin, vähim ühendusi ja kaalutud vähim ühendusi.

Ringmäng

Round Robin on prot­se­duur, mille puhul koormuse jaotaja töötleb sis­se­tu­le­vaid ser­ve­ri­pä­rin­guid jär­je­kor­ras ja jaotab need mitme serveri vahel. Iga uus päring suu­na­takse jär­je­kor­ras järg­misele serverile. Selle tu­le­mu­sena jaotuvad juur­de­pää­su­pä­rin­gud koormuse jaotamise klastri vahel ühtlaselt. Sõltumata päringu kii­re­loo­mu­li­susest või ser­ve­ri­koor­muse suurusest, kohtleb Round Robin kõiki protsesse võrdselt. Round-robin-põ­hi­mõt­tel töötavad koormuse jaotajad sobivad eriti hästi kesk­kon­da­desse, kus kõigil ins­tant­si­del on ligikaudu võrdsed ressursid.

Kaalutud ring­mee­tod

Klas­si­ka­lise ring­hää­lin­gualgo­ritmi puudusi he­te­ro­geen­se­tes ser­ve­ri­klast­ri­tes on võimalik kom­pen­see­rida kaalutud ring­hää­lin­gu­ja­ga­mise abil. Sis­se­tu­le­vad päringud jao­ta­takse, võttes arvesse iga serveri staa­ti­list kaalu. Selle kaalu määrab eelnevalt ad­mi­nist­raa­tor.

Näiteks võib kõige võim­sa­male serverile määrata väärtuse „100“, samas kui vähem tõ­hu­satele ser­ve­ri­tele antakse väärtus „50“. Sellises kon­fi­gu­rat­sioo­nis saaks kaaluga „100“ server koormuse jaotajalt ühe vooru jooksul kaks päringut, samas kui kaaluga „50“ server saaks vaid ühe päringu. Kaalutud Round Robin-meetodit tuleks koormuse jao­ta­misel kasutada eelkõige siis, kui klastri ser­ve­ri­tel on kasutada erinevad ressursid.

Kõige vähem ühendusi

Mõlemad ring­hää­lin­gualgo­rit­mid ei võta koormuse jaotaja poolt ser­ve­ri­pä­rin­gute jär­jes­ti­kuse jaotamise käigus arvesse seda, kui palju ühendusi peavad alluvad serverid teatud aja­va­he­miku jooksul hoidma. See võib põh­jus­tada mitme ühenduse kuhjumist klastri ühele serverile. Selle tu­le­mu­sena muutub server üle­koor­ma­tuks, isegi kui ta töötleb vähem ühendusi kui teised. Algoritm „least-con­nec­tions” kaitseb selle eest. See jaotab päringud iga serveri ole­mas­ole­vate ühendustepõhjal – server, millel on kõige vähem ak­tiiv­seid ühendusi, saab koormuse ta­sa­kaa­lus­ta­jalt järgmise päringu. Seda koormuse ta­sa­kaa­lus­ta­mise meetodit soo­vi­ta­takse kasutada ho­mo­geen­se­tes ser­ve­ri­klast­ri­tes, kus kõigil arvutitel on võr­rel­da­vad ressursid.

Kaalutud vä­him­ühen­duste meetod

Kui ser­ve­ri­klast­ril on erinevad võimsused, tuleks vähimate ühenduste algoritmi asemel kasutada koormuse jaotamist, mis põhineb ole­mas­ole­vate ühenduste kaalutud jaotusel. See võtab arvesse nii serveri ak­tiiv­seid ühendusi kui ka ad­mi­nist­raa­tori määratud kaalu. See tagab koormuse ta­sa­kaa­lus­ta­tud jaotuse ser­ve­ri­klastri piires. Koormuse jaotaja suunab uued päringud au­to­maat­selt nendele ser­ve­ri­tele, mille aktiivse ühenduste ja vastava serveri kaalu suhe viitab hetkel väik­sei­male koor­mu­sele.

Millised prob­lee­mid võivad tekkida koormuse jaotamise ka­su­ta­misel?

Eelkõige e-kau­ban­duse sektoris tekitab koormuse jaotamine sageli probleeme. Siin on üks näide: vee­bi­saidi kü­las­ta­jad lisavad ostukorvi tooted, mida nad soovivad osta. Need tooted jäävad sal­ves­ta­tuks kogu sessiooni vältel, sõltumata sellest, millisele lehele kasutajad veebipoes na­vi­gee­rivad. Tavaline koormuse jaotaja jaotaks päringud erinevate serverite vahel. See tähendab, et ostukorvi sisu läheks kaduma.

Selle probleemi la­hen­da­miseks on võimalik kasutada kahte lä­he­ne­mis­viisi. Esiteks võib koormuse jaotaja rea­gee­rida ka­su­ta­jate IP-aad­res­si­dele. Sel juhul suu­na­takse näiteks samast IP-aad­ressist pärit päringud alati samale serverile. Teine meetod oleks lugeda päringust välja seanssi-ID, et määrata kindlaks, millisele serverile päring tuleb saata.

Miks on koormuse jaotajad nii olulised?

Kui teenite raha interneti kaudu, ei saa teie ettevõte endale ser­ve­ri­rik­keid lubada. Ja kui kasutate ainult ühte serverit ning see kukub üle­koor­muse tõttu kokku, ei ole teie veebisait po­tent­siaal­se­tele klien­ti­dele enam kät­te­saa­dav. See toob kaasa mitmeid probleeme: esiteks ei saa te üle­koor­muse ajal tulu teenida. Teenuseid ei saa bro­nee­rida ega oste teha. Lisaks väheneb (po­tent­siaal­sete) klientide usaldus. See on ka­he­kord­selt halb ka­su­ta­ja­tele, kes kogevad tel­li­mis­prot­sessi ajal serveri üle­koor­must. Sageli valitseb suur eba­kind­lus ja mõjutatud isikud ei tea, kas tellimus jõudis te­ge­li­kult kohale ja re­gist­ree­riti süsteemis.

Isegi kui te ei paku teenuseid otse interneti kaudu, peaks teie veebisait olema alati kät­te­saa­dav. Veebisait on üks peamisi teabele juur­de­pääsu kanaleid. Kui po­tent­siaal­sed kliendid otsivad in­ter­ne­tist teavet teie ettevõtte kohta ja ei suuda teie vee­bi­saiti leida, on tõe­näo­li­sem, et nad pöörduvad teie kon­ku­ren­tide poole. Selliseid riske saate vähendada koormuse jaoturi abil.

Kuidas rakendada koormuse jaotamist oma et­te­võt­tes

Koormuse jaotamist saab vir­tuaal­ser­ve­ris rakendada nii riist- kui ka tark­va­ra­la­hen­duste abil. Mitmed tee­nu­se­pak­ku­jad pakuvad pro­fes­sio­naal­seid ter­vik­pa­kette kas teenusena pakutava inf­ra­struk­tuuri (IaaS) vormis või võr­gu­kom­po­nen­dina teie enda IT-inf­ra­struk­tuuri jaoks.

Kuna varaliste koormuse jaotajate soetamine on ta­va­li­selt seotud suurte kuludega, pöörduvad väiksemad et­te­võt­ted sageli avatud läh­te­koo­diga la­hen­duste, nagu NGINX, poole. See pakub ku­lu­tõ­hu­sat viisi tagada ettevõtte vee­bi­saidi või muude vee­bi­pro­jek­tide kõrge kät­te­saa­da­vus tõhusa koormuse jaotamise kaudu ser­ve­ri­võr­gus. Vee­bi­ma­ju­tuse sektoris pakutakse koormuse jaotamist sageli ka pil­ve­ser­ve­rite li­sa­funkt­sioo­nina.

Go to Main Menu