Kaip paskirstyti serverio apkrovą naudojant apkrovos balansavimo įrenginį
Naudojant apkrovos balansavimą, prieiga prie serverio tolygiai paskirstoma tarp įvairių aparatinės įrangos išteklių per techninį įrenginį, vadinamą apkrovos balansuotoju. Tai užtikrina stabilų prieigos greitį, kuris yra itin svarbus siekiant pritraukti potencialius klientus ir užsitikrinti esamus klientus.
Kas yra apkrovos paskirstymas?
Apkrovos balansavimas yra ypač populiarus serverių technologijų srityje ir apibūdina metodą, kai užklausos foniniame režime paskirstomos tarp skirtingų serverių, vartotojams to nepastebint. Šiam tikslui naudojamas apkrovos balansuotojas gali būti įgyvendintas kaip aparatinė arba programinė įranga. Jis vienam domenui priskiria kelis serverius, nesukeldamas adresų konfliktų, o prieiga prie jo vykdoma per viešąjį domeną.
Pagalbiniai žiniatinklio serveriai pavadinami pridedant domeno priesagas www1, www2, www3 ir t. t. Tai leidžia taikyti apkrovos balansavimą, kad svetainė būtų pasiekiama tuo pačiu URL adresu, net jei ją aptarnauja keli serveriai. Taip išvengiama serverių perkrovos, nes išoriniai užklausimai paskirstomi tarp įvairių fizinės įrangos vienetų klasteryje. Vartotojai paprastai to nepastebi, nes užklausų paskirstymas vyksta fone pagal sudėtingus algoritmus.
Apkrovos balansavimas gali būti svarbus ne tik žiniatinklio serverių atveju, bet ir, pavyzdžiui, kompiuteriuose, kuriuose veikia keli procesoriai. Tokiais atvejais apkrovos balansuotojas užtikrina, kad užklausos būtų tolygiai paskirstytos tarp skirtingų procesorių, taip padidinant skaičiavimo galią. Apkrovos balansuotojai taip pat yra reikalingi naudojant konteinerių programinę įrangą, pavyzdžiui, „Kubernetes“. Šiuo atveju jie užtikrina, kad darbo apkrovos būtų efektyviai paskirstytos tarp įvairių podų.
Kaip veikia apkrovos paskirstymas?
Užklausos žiniatinklio serveriui, pvz., puslapių peržiūrų forma, iš pradžių apdorojamos apkrovos paskirstymo įrenginyje. Šis įrenginys perima apkrovos paskirstymą, persiunčiant prisijungimo bandymus į skirtingus serverius. Pats apkrovos paskirstymo įrenginys gali būti įgyvendintas kaip aparatinė arba programinė įranga, tačiau principas lieka tas pats: užklausa pasiekia apkrovos paskirstymo įrenginį ir, priklausomai nuo naudojamo metodo, įrenginys arba programinė įranga persiunčia duomenis į atitinkamą serverį.
Techninis pagrindas yra DNS procedūra: vartotojai prie svetainės prisijungia tik per URL adresą. Šis adresas, naudojant DNS, konvertuojamas į IP adresą, kuris vėliau nukreipia į apkrovos balansavimo įrenginį. Idealiu atveju vartotojai šio proceso nepastebi.

Kokie yra subalansuoto apkrovos paskirstymo privalumai?
Tinkamai įdiegtas apkrovos paskirstymo įrenginys turi šiuos tris pagrindinius privalumus:
- Optimizuotas prisijungimo laikas: paskirstant srautą keliems serveriams galima sutrumpinti prisijungimo laiką, net ir tuo atveju, kai vienu metu gaunama daug užklausų.
- Didesnis atsparumas gedimams: apkrovos balansavimo įrenginys padidina atsparumą gedimams, nes srautas iš lėto veikiančio serverio automatiškai nukreipiamas į kitus klasterio serverius. Jei serveris nepasiekiamas, talpinama svetainė lieka prieinama.
- Supaprastinta sistemos priežiūra: apkrovos balansavimas labai palengvina serverių sistemos priežiūrą. Konfigūracijos ir atnaujinimai gali būti atliekami serveriams veikiant be pastebimo našumo sumažėjimo. Apkrovos balansuotojas aptinka priežiūros būsenas ir atitinkamai nukreipia užklausas.
Kokie yra apkrovos paskirstymo tipai?
Tai, kaip paskirstomi gaunami užklausimai, priklauso nuo pasirinktos algoritmo rūšies. Populiariausi apkrovos balansavimo algoritmai yra: „Round Robin“, „Weighted Round Robin“, „Least Connections“ ir „Weighted Least Connections“.
„Round Robin“
„Round Robin“ – tai procedūra, kai gaunami serverio užklausos apdorojamos apkrovos balansavimo įrenginio eilėje ir paskirstomos tarp kelių serverių. Kiekviena nauja užklausa priskiriama eilėje esančiam kitam serveriui. Dėl to prieigos užklausos gali būti tolygiai paskirstytos po visą apkrovos balansavimo klasterį. Nesvarbu, koks skubus yra užklausimas ar kokia didelė serverio apkrova, „Round Robin“ visus procesus traktuoja vienodai. Apkrovos balansavimo įrenginiai, veikiantys pagal „round-robin“ principą, ypač tinka aplinkoms, kuriose visos instancės turi maždaug vienodus išteklius.
Svertinis „Round Robin“
Klasikinio „round-robin“ algoritmo trūkumus nevienalytėse serverių grupėse galima kompensuoti taikant svertinį „round-robin“ paskirstymą. Gaunami užklausimai paskirstomi atsižvelgiant į kiekvieno serverio statinį svorį. Šį svorį iš anksto nustato administratorius.
Pavyzdžiui, galingiausiam serveriui galima priskirti vertę „100“, o mažiau našiesiems serveriams – vertę „50“. Tokiu atveju serveris, kuriam priskirta vertė „100“, per vieną ciklą iš apkrovos balansavimo įrenginio gautų du užklausimus, o serveris, kuriam priskirta vertė „50“, – tik vieną užklausimą. Svorinis „Round Robin“ metodas turėtų būti taikomas apkrovos balansavimui visų pirma tais atvejais, kai klasterio serveriai turi skirtingus išteklius.
Mažiausias jungčių skaičius
Abu „round-robin“ algoritmai, kai apkrovos balansuotojas serijiniu būdu paskirsto serverių užklausas, neatsižvelgia į tai, kiek ryšių pavaldūs serveriai turi palaikyti per tam tikrą laikotarpį. Dėl to viename klasterio serveryje gali susikaupti daugybė ryšių. Tai lemia serverio perkrovą, net jei jis tvarko mažiau ryšių nei kiti. „Mažiausiai ryšių“ algoritmas apsaugo nuo to. Jis paskirsto užklausas remdamasis kiekvieno serverio esamais ryšiais– tas, kuris turi mažiausiai aktyvių ryšių, gauna kitą užklausą iš apkrovos balansavimo įrenginio. Šis apkrovos balansavimo metodas rekomenduojamas vienalytėms serverių grupėms, kuriose visi kompiuteriai turi panašius išteklius.
Svertinis mažiausių jungčių skaičiaus metodas
Jei serverių klasterio serverių pajėgumai skiriasi, vietoj algoritmo, pagrįsto mažiausiu prisijungimų skaičiumi, reikėtų taikyti apkrovos balansavimą, grindžiamą esamų prisijungimų svertiniu paskirstymu. Šis metodas atsižvelgia tiek į aktyvų prisijungimų skaičių serveryje, tiek į administratoriaus nustatytus svorio koeficientus. Tai užtikrina subalansuotą apkrovos paskirstymą serverių klasteryje. Nauji užklausimai apkrovos balansavimo įrenginio automatiškai nukreipiami į tuos serverius, kurių aktyvų prisijungimų ir atitinkamo serverio svorio koeficiento santykis rodo mažiausią esamą apkrovą.
Kokios problemos gali kilti naudojant apkrovos paskirstymą?
Ypač elektroninės prekybos sektoriuje apkrovos balansavimas dažnai susiduria su sunkumais. Štai pavyzdys: svetainės lankytojai į pirkinių krepšelį įdeda prekes, kurias nori įsigyti. Šios prekės išlieka išsaugotos visą sesijos laiką, nepriklausomai nuo to, į kurį puslapį vartotojai pereina internetinėje parduotuvėje. Įprastas apkrovos balansuotojas užklausas paskirstytų skirtingiems serveriams. Tai reiškia, kad krepšelio turinys būtų prarastas.
Šiai problemai išspręsti galima taikyti du metodus. Pirma, apkrovos paskirstymo įrenginys gali reaguoti į vartotojų IP adresus. Tokiu atveju, pavyzdžiui, užklausos iš to paties IP adreso visada nukreipiamos į tą patį serverį. Kitas būdas – iš pačios užklausos išskaityti sesijos identifikatorių, kad būtų galima nustatyti, į kurį serverį užklausa turi būti nusiųsta.
Kodėl apkrovos paskirstymo įrenginiai yra tokie svarbūs?
Jei uždirbate pinigus internetu, jūsų verslas negali sau leisti serverio gedimo. O jei naudojate tik vieną serverį ir jis sugenda dėl perkrovos, jūsų svetainė tampa nepasiekiama potencialiems klientams. Tai sukelia keletą problemų: pirma, perkrovos metu negalite gauti pajamų. Negalima užsisakyti paslaugų ir atlikti pirkimų. Be to, mažėja (potencialių) klientų pasitikėjimas. Tai dvigubai blogai vartotojams, kurie susiduria su serverio perkrova užsakymo proceso metu. Dažnai kyla didelė neaiškumas, ir nukentėjusieji nežino, ar užsakymas iš tikrųjų buvo gautas ir užregistruotas sistemoje.
Net jei savo paslaugų neteikiate tiesiogiai internetu, jūsų svetainė turėtų būti pasiekiama bet kuriuo metu. Svetainė yra vienas iš pagrindinių informacijos gavimo šaltinių. Jei potencialūs klientai ieško informacijos apie jūsų įmonę internete ir negali patekti į jūsų svetainę, jie greičiausiai kreipsis į jūsų konkurentus. Tokią riziką galite sumažinti naudodami apkrovos balansavimo įrenginį.
Kaip įdiegti apkrovos paskirstymą savo įmonėje
Apkrovos balansavimas virtualiame serveryje gali būti įgyvendintas naudojant tiek aparatinės, tiek programinės įrangos sprendimus. Daugybė tiekėjų siūlo profesionalius kompleksinius paketus, kurie teikiami kaip „Infrastructure-as-a-Service“ (IaaS) arba kaip tinklo komponentas jūsų pačių IT infrastruktūrai.
Kadangi komercinių apkrovos balansavimo įrenginių įsigijimas paprastai yra brangus, mažesnės įmonės dažnai renkasi atvirojo kodo sprendimus, pavyzdžiui, „NGINX“. Tai ekonomiškas būdas užtikrinti aukštą jūsų įmonės svetainės ar kitų interneto projektų prieinamumą, efektyviai paskirstant apkrovą serverių tinkle. Interneto prieglobos sektoriuje apkrovos balansavimas taip pat dažnai siūlomas kaip papildoma debesų serverių funkcija.