Kako razporediti delovno obremenitev strežnika z uporabo porazdeljevalnika obremenitve
Z uporabo porazdelitve obremenitve se dostop do strežnika enakomerno porazdeli med različne strojne vire prek tehnične rešitve, imenovane porazdeljevalnik obremenitve. To zagotavlja stabilne hitrosti dostopa, kar je ključnega pomena za pridobivanje potencialnih strank in strank.
Kaj je porazdelitev obremenitve?
Porazdelitev obremenitve je še posebej priljubljena v strežniški tehnologiji in opisuje metodo, pri kateri se zahtevki v ozadju porazdelijo med različne strežnike, ne da bi to uporabniki opazili. Naprava za porazdelitev obremenitve, ki se za to uporablja, je lahko v obliki strojne ali programske opreme. Eni domeni dodeli več strežnikov, ne da bi pri tem prišlo do naslovnih konfliktov, dostop do nje pa poteka prek javne domene.
Podrejeni spletni strežniki so poimenovani z dodatki k domeni www1, www2, www3 itd. To omogoča porazdelitev obremenitve, tako da je spletna stran dostopna pod istim URL-jem, čeprav jo podpirajo več strežnikov. S tem se prepreči preobremenitev strežnika, saj se zunanja povpraševanja porazdelijo med različne fizične stroje znotraj grozda. Uporabniki tega običajno ne opazijo, saj se porazdelitev povpraševanj izvaja na podlagi zapletenih algoritmov v ozadju.
Porazdelitev obremenitve ima lahko pomembno vlogo tudi zunaj spletnih strežnikov, na primer pri računalnikih z več procesorji. V takih primerih porazdeljevalnik obremenitve poskrbi, da se zahteve enakomerno porazdelijo med različne procesorje, s čimer se poveča računska moč. Porazdeljevalniki obremenitve so zelo iskani tudi pri uporabi programske opreme za kontejnerje, kot je Kubernetes. V tem primeru poskrbijo za učinkovito porazdelitev delovnih obremenitev med različne pod-enote.
Kako deluje porazdelitev obremenitve?
Zahtevki za spletni strežnik, npr. v obliki ogledov strani, se najprej obdelajo na porazdeljevalniku obremenitve. Ta nato prevzame porazdelitev obremenitve tako, da posreduje poskuse dostopa različnim strežnikom. Porazdeljevalnik obremenitve je lahko izveden kot strojna ali programska oprema, vendar načelo ostaja enako: zahtevek prispe na porazdeljevalnik obremenitve in naprava ali programska oprema, odvisno od uporabljene metode, posreduje podatke ustreznemu strežniku.
Tehnična podlaga je postopek DNS: uporabniki dostopajo do spletne strani izključno prek URL-ja. Ta se s pomočjo DNS pretvori v IP-naslov, ki nato usmerja promet na porazdeljevalnik obremenitve. V idealnem primeru uporabniki tega procesa sploh ne opazijo.

Kakšne so prednosti uravnoteženega porazdeljevanja obremenitve?
Tri glavne prednosti pravilno nameščenega porazdeljevalnika obremenitve so naslednje:
- Optimizirani časi dostopa: Razporeditev prometa med več strežnikov lahko skrajša čase dostopa, tudi če je hkrati veliko zahtevkov.
- Večja odpornost proti napakam: Porazdeljevalnik obremenitve poveča odpornost proti napakam, saj se promet s počasnega strežnika samodejno preusmeri na druge strežnike v gruči. Če strežnik ni na voljo, ostane gostovana spletna stran dostopna.
- Poenostavljeno vzdrževanje sistema: Porazdelitev obremenitve v veliki meri olajša vzdrževanje strežniškega sistema. Konfiguracije in posodobitve je mogoče izvajati med delovanjem strežnikov brez opazne izgube zmogljivosti. Porazdeljevalnik obremenitve zazna stanja vzdrževanja in ustrezno preusmerja zahteve.
Kakšne so različne vrste porazdelitve obremenitve?
Način razporeditve prihajajočih zahtevkov je odvisen od izbire algoritma. Med priljubljenimi algoritmi za porazdelitev obremenitve so: Round Robin, Weighted Round Robin, Least Connections in Weighted Least Connections.
Round Robin
Round Robin opisuje postopek, pri katerem razporednik obremenitve obdeluje prihajajoče zahteve v vrsti in jih porazdeli med več strežnikov. Vsaka nova zahteva se dodeli naslednjemu strežniku v zaporedju. Tako se zahteve za dostop enakomerno porazdelijo po celotnem sklopu za razporeditev obremenitve. Ne glede na to, kako nujna je zahteva ali kako velika je obremenitev strežnika, Round Robin obravnava vse procese enako. Porazdeljevalniki obremenitve, ki delujejo po načelu Round Robin, so še posebej primerni za okolja, v katerih imajo vse instance na voljo približno enake vire.
Tehtani krožni sistem
Slabosti klasičnega algoritma »round-robin« v heterogenih strežniških grozdih je mogoče izravnati s tehtanim razporejanjem po načelu »round-robin«. Prihajajoče zahteve se razporedijo ob upoštevanju statičnega tehtanja posameznih strežnikov. To tehtanje vnaprej določi skrbnik.
Najzmogljivejši strežnik lahko na primer dobi vrednost »100«, medtem ko manj zmogljivi strežniki dobijo vrednost »50«. V takšni konfiguraciji bi strežnik z utežjo »100« od porazdeljevalnika obremenitve prejel dve zahtevi na krog, strežnik z utežjo »50« pa le eno. Porazdeljevanje obremenitve po metodi »Weighted Round Robin« je primerno uporabiti predvsem takrat, ko imajo strežniki v gruči na voljo različne vire.
Najmanj povezav
Oba algoritma »round-robin« pri serijski porazdelitvi strežniških zahtevkov s strani porazdeljevalnika obremenitve ne upoštevata, koliko povezav morajo podrejeni strežniki vzdrževati v določenem časovnem obdobju. To lahko povzroči, da se na enem strežniku v gruči nakopiči več povezav. Posledica tega je preobremenitev strežnika, čeprav obdeluje manj povezav kot drugi. Algoritem najmanj povezav to preprečuje. Zahteve razporedi na podlagi obstoječih povezav vsakega strežnika– tisti z najmanj aktivnimi povezavami prejme naslednjo zahtevo od porazdeljevalnika obremenitve. Ta metoda porazdeljevanja obremenitve se priporoča za homogene strežniške sklope, v katerih imajo vsi računalniki na voljo primerljive vire.
Metoda najmanjšega števila povezav
Če ima strežniški klaster različne zmogljivosti, je treba namesto algoritma z najmanj povezavami uporabiti porazdelitev obremenitve, ki temelji na tehtani porazdelitvi obstoječih povezav. Pri tem se upoštevata tako število aktivnih povezav na strežniku kot tudi utež, ki jo določi skrbnik. To zagotavlja uravnoteženo porazdelitev obremenitve znotraj strežniškega klastra. Porazdeljevalnik obremenitve nove zahteve samodejno dodeli tistim strežnikom, pri katerih razmerje med aktivnimi povezavami in njihovo utežjo kaže na najmanjšo trenutno obremenitev.
Kakšne težave se lahko pojavijo pri uporabi porazdelitve obremenitve?
Zlasti v sektorju e-trgovine se pri porazdeljevanju obremenitve pogosto pojavljajo težave. Tukaj je primer: obiskovalci spletne strani v košarico dodajo izdelke, ki jih želijo kupiti. Ti izdelki ostanejo shranjeni ves čas trajanja seje, ne glede na to, na katero stran spletnega trga se uporabniki preusmerijo. Običajni porazdeljevalnik obremenitve bi zahteve razporedil med različne strežnike. To pomeni, da bi se vsebina košarice izgubila.
Za rešitev tega problema sta možna dva pristopa. Prvič, porazdeljevalnik obremenitve se lahko odzove na IP-naslov uporabnika. Tako se na primer zahtevki z istega IP-naslova vedno usmerijo na isti strežnik. Druga možnost bi bila, da se iz samega zahtevka prebere identifikator seje, na podlagi katerega se določi, na kateri strežnik je treba zahtevek poslati.
Zakaj so porazdeljevalniki obremenitve tako pomembni?
Če zaslužite prek interneta, si vaše podjetje ne more privoščiti izpada strežnika. Če uporabljate le en strežnik in ta zaradi preobremenitve odpove, vaša spletna stran ni več dostopna potencialnim strankam. To povzroči več težav: med drugim med preobremenitvijo ne morete ustvarjati prihodkov. Storitev ni mogoče rezervirati, nakupov pa ni mogoče opraviti. Poleg tega se zmanjša zaupanje (potencialnih) strank. Še posebej slabo je za uporabnike, ki se med postopkom naročanja soočijo s preobremenitvijo strežnika. Pogosto vlada velika negotovost, prizadeti pa ne vedo, ali je naročilo dejansko prispelo in bilo zabeleženo v sistemu.
Tudi če storitev ne ponujate neposredno prek interneta, mora biti vaša spletna stran vedno dostopna. Spletna stran je eden od glavnih kanalov za pridobivanje informacij. Če potencialni kupci na spletu iščejo podatke o vašem podjetju in ne morejo dostopati do vaše spletne strani, se bodo verjetno obrnili k vaši konkurenci. Takšna tveganja lahko zmanjšate z uporabo naprave za porazdelitev obremenitve.
Kako v svojem podjetju uvesti porazdelitev obremenitve
Porazdelitev obremenitve je mogoče izvesti z uporabo tako strojne kot programske opreme na virtualnem strežniku. Številni ponudniki nudijo profesionalne celovite pakete, bodisi v obliki storitve »infrastruktura kot storitev« (IaaS) bodisi kot omrežno komponento za vašo lastno IT-infrastrukturo.
Ker je nakup lastniških naprav za porazdelitev obremenitve običajno povezan z visokimi stroški, se manjša podjetja pogosto odločajo za odprtokodne rešitve, kot je NGINX. Ta ponuja stroškovno učinkovit način za zagotavljanje visoke razpoložljivosti spletne strani vašega podjetja ali drugih spletnih projektov prek učinkovite porazdelitve obremenitve znotraj omrežja strežnikov. V sektorju spletnega gostovanja se porazdelitev obremenitve pogosto ponuja tudi kot dodatna funkcija za strežnike v oblaku.