Kuidas jaotada serveri töökoormust koormuse jaoturi abil
Koormuse jaotamise kasutamine võimaldab jaotada serverile juurdepääsu ühtlaselt erinevate riistvararessursside vahel tehnilise lahenduse abil, mida nimetatakse koormuse jaotajaks. See tagab stabiilse ühenduskiiruse, mis on potentsiaalsete klientide ja klientide leidmisel otsustava tähtsusega.
Mis on koormuse jaotamine?
Koormuse jaotamine on eriti levinud serveritehnoloogias ning tähendab meetodit, mille puhul päringud jaotatakse taustal erinevate serverite vahel nii, et kasutajad seda ei märka. Selleks kasutatavat koormuse jaotajat võib rakendada nii riist- kui ka tarkvarana. See seostab domeeniga mitu serverit ilma aadressikonflikte põhjustamata ning sellele pääseb ligi domeeni avaliku aadressi kaudu.
Alluvate veebiserverite nimedele lisatakse domeenilõpud www1, www2, www3 jne. See võimaldab koormuse jaotamisel tagada veebisaidi kättesaadavuse sama URL-i all, kuigi selle taga töötab mitu serverit. See hoiab ära serverite ülekoormuse, kuna välised päringud jaotatakse klastri erinevate füüsiliste masinate vahel. Kasutajad ei märka seda tavaliselt, kuna päringute jaotamine toimub taustal keeruliste algoritmide abil.
Koormuse jaotamine võib olla oluline ka väljaspool veebiserverite konteksti, näiteks mitme protsessoriga arvutite puhul. Sellistel juhtudel tagab koormuse jaotaja, et koormus jaotub ühtlaselt erinevate protsessorite vahel, et saavutada suuremat arvutusvõimsust. Koormuse jaotajaid on vaja ka selliste konteineritarkvara lahenduste kasutamisel nagu Kubernetes. Seal tagavad need, et töökoormus jaotub tõhusalt erinevate podide vahel.
Kuidas toimib koormuse jaotamine?
Veebiserverile suunatud päringud, näiteks lehekülgede vaatamised, töödeldakse esmalt koormuse jaotajas. Seejärel võtab koormuse jaotaja üle koormuse jaotamise, suunates juurdepääsupüüdlused edasi erinevatele serveritele. Koormuse jaotaja võib olla rakendatud riist- või tarkvarana, kuid põhimõte jääb samaks: päring jõuab koormuse jaotajani ning sõltuvalt kasutatavast meetodist suunab seade või tarkvara andmed edasi asjaomasele serverile.
Tehniline aluseks on DNS-protseduur: kasutajad pääsevad veebisaidile ligi ainult URL-i kaudu. See teisendatakse DNS-i abil IP-aadressiks, mis suunab seejärel koormuse jaotajale. Ideaaljuhul jääb see protsess kasutajatele märkamatuks.

Millised on tasakaalustatud koormuse jaotamise eelised?
Hästi paigaldatud koormuse jaoturi kolm peamist eelist on järgmised:
- Optimeeritud laadimisajad: liikluse jaotamine mitme serveri vahel võib lühendada laadimisaegu isegi siis, kui samaaegselt esitatakse palju päringuid.
- Suurem veatolerantsus: koormuse tasakaalustaja suurendab veatolerantsust, kuna aeglase serveri liiklus suunatakse automaatselt klastri teistele serveritele. Kui server ei ole kättesaadav, jääb veebisait endiselt kättesaadavaks.
- Lihtsustatud süsteemi hooldus: koormuse jaotamine toetab oluliselt serverisüsteemi hooldamist. Konfiguratsioone ja uuendusi saab teha serverite töötamise ajal ilma märgatava jõudluse kaotuseta. Koormuse jaotaja tuvastab hooldusolukorrad ja suunab päringud vastavalt ümber.
Millised on koormuse jaotamise erinevad tüübid?
Sissetulevate päringute jaotamine sõltub valitud algoritmist. Koormuse jaotamise levinumad algoritmid on: Round Robin, kaalutud Round Robin, vähim ühendusi ja kaalutud vähim ühendusi.
Ringmäng
Round Robin on protseduur, mille puhul koormuse jaotaja töötleb sissetulevaid serveripäringuid järjekorras ja jaotab need mitme serveri vahel. Iga uus päring suunatakse järjekorras järgmisele serverile. Selle tulemusena jaotuvad juurdepääsupäringud koormuse jaotamise klastri vahel ühtlaselt. Sõltumata päringu kiireloomulisusest või serverikoormuse suurusest, kohtleb Round Robin kõiki protsesse võrdselt. Round-robin-põhimõttel töötavad koormuse jaotajad sobivad eriti hästi keskkondadesse, kus kõigil instantsidel on ligikaudu võrdsed ressursid.
Kaalutud ringmeetod
Klassikalise ringhäälingualgoritmi puudusi heterogeensetes serveriklastrites on võimalik kompenseerida kaalutud ringhäälingujagamise abil. Sissetulevad päringud jaotatakse, võttes arvesse iga serveri staatilist kaalu. Selle kaalu määrab eelnevalt administraator.
Näiteks võib kõige võimsamale serverile määrata väärtuse „100“, samas kui vähem tõhusatele serveritele antakse väärtus „50“. Sellises konfiguratsioonis 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 jaotamisel kasutada eelkõige siis, kui klastri serveritel on kasutada erinevad ressursid.
Kõige vähem ühendusi
Mõlemad ringhäälingualgoritmid ei võta koormuse jaotaja poolt serveripäringute järjestikuse jaotamise käigus arvesse seda, kui palju ühendusi peavad alluvad serverid teatud ajavahemiku jooksul hoidma. See võib põhjustada mitme ühenduse kuhjumist klastri ühele serverile. Selle tulemusena muutub server ülekoormatuks, isegi kui ta töötleb vähem ühendusi kui teised. Algoritm „least-connections” kaitseb selle eest. See jaotab päringud iga serveri olemasolevate ühendustepõhjal – server, millel on kõige vähem aktiivseid ühendusi, saab koormuse tasakaalustajalt järgmise päringu. Seda koormuse tasakaalustamise meetodit soovitatakse kasutada homogeensetes serveriklastrites, kus kõigil arvutitel on võrreldavad ressursid.
Kaalutud vähimühenduste meetod
Kui serveriklastril on erinevad võimsused, tuleks vähimate ühenduste algoritmi asemel kasutada koormuse jaotamist, mis põhineb olemasolevate ühenduste kaalutud jaotusel. See võtab arvesse nii serveri aktiivseid ühendusi kui ka administraatori määratud kaalu. See tagab koormuse tasakaalustatud jaotuse serveriklastri piires. Koormuse jaotaja suunab uued päringud automaatselt nendele serveritele, mille aktiivse ühenduste ja vastava serveri kaalu suhe viitab hetkel väikseimale koormusele.
Millised probleemid võivad tekkida koormuse jaotamise kasutamisel?
Eelkõige e-kaubanduse sektoris tekitab koormuse jaotamine sageli probleeme. Siin on üks näide: veebisaidi külastajad lisavad ostukorvi tooted, mida nad soovivad osta. Need tooted jäävad salvestatuks kogu sessiooni vältel, sõltumata sellest, millisele lehele kasutajad veebipoes navigeerivad. Tavaline koormuse jaotaja jaotaks päringud erinevate serverite vahel. See tähendab, et ostukorvi sisu läheks kaduma.
Selle probleemi lahendamiseks on võimalik kasutada kahte lähenemisviisi. Esiteks võib koormuse jaotaja reageerida kasutajate IP-aadressidele. Sel juhul suunatakse näiteks samast IP-aadressist 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 serveririkkeid lubada. Ja kui kasutate ainult ühte serverit ning see kukub ülekoormuse tõttu kokku, ei ole teie veebisait potentsiaalsetele klientidele enam kättesaadav. See toob kaasa mitmeid probleeme: esiteks ei saa te ülekoormuse ajal tulu teenida. Teenuseid ei saa broneerida ega oste teha. Lisaks väheneb (potentsiaalsete) klientide usaldus. See on kahekordselt halb kasutajatele, kes kogevad tellimisprotsessi ajal serveri ülekoormust. Sageli valitseb suur ebakindlus ja mõjutatud isikud ei tea, kas tellimus jõudis tegelikult kohale ja registreeriti süsteemis.
Isegi kui te ei paku teenuseid otse interneti kaudu, peaks teie veebisait olema alati kättesaadav. Veebisait on üks peamisi teabele juurdepääsu kanaleid. Kui potentsiaalsed kliendid otsivad internetist teavet teie ettevõtte kohta ja ei suuda teie veebisaiti leida, on tõenäolisem, et nad pöörduvad teie konkurentide poole. Selliseid riske saate vähendada koormuse jaoturi abil.
Kuidas rakendada koormuse jaotamist oma ettevõttes
Koormuse jaotamist saab virtuaalserveris rakendada nii riist- kui ka tarkvaralahenduste abil. Mitmed teenusepakkujad pakuvad professionaalseid tervikpakette kas teenusena pakutava infrastruktuuri (IaaS) vormis või võrgukomponendina teie enda IT-infrastruktuuri jaoks.
Kuna varaliste koormuse jaotajate soetamine on tavaliselt seotud suurte kuludega, pöörduvad väiksemad ettevõtted sageli avatud lähtekoodiga lahenduste, nagu NGINX, poole. See pakub kulutõhusat viisi tagada ettevõtte veebisaidi või muude veebiprojektide kõrge kättesaadavus tõhusa koormuse jaotamise kaudu serverivõrgus. Veebimajutuse sektoris pakutakse koormuse jaotamist sageli ka pilveserverite lisafunktsioonina.