Med hjälp av last­ba­lan­se­ring kan ser­veråt­koms­ten fördelas jämnt över olika hård­varu­re­sur­ser genom en teknisk instans som kallas last­ba­lan­se­ra­re. Detta sä­ker­stäl­ler stabila åt­komst­has­tig­he­ter, vilket är avgörande för att generera leads och kunder.

Vad är last­ba­lan­se­ring?

Last­ba­lan­se­ring är särskilt populärt inom ser­ver­tek­nik och beskriver en metod där för­fråg­ning­ar fördelas mellan olika servrar i bak­grun­den utan att an­vän­dar­na märker det. Last­ba­lan­se­ring­en som används för detta kan im­ple­men­te­ras som hårdvara eller mjukvara. Den tilldelar flera servrar till en domän utan att orsaka adress­kon­flik­ter och nås under den of­fent­li­ga domänen.

De un­der­ord­na­de webb­serv­rar­na namnges med do­män­tilläg­gen www1, www2, www3 osv. Detta möjliggör last­ba­lan­se­ring så att en webbplats är till­gäng­lig under samma URL, även om flera servrar ligger bakom den. Detta för­hind­rar över­be­last­ning av servern eftersom externa för­fråg­ning­ar fördelas över olika fysiska maskiner inom klustret. An­vän­dar­na märker i allmänhet inte detta eftersom för­del­ning­en av för­fråg­ning­ar sker baserat på komplexa al­go­rit­mer i bak­grun­den.

Last­ba­lan­se­ring kan också spela en roll utanför webb­serv­rar, till exempel med datorer som körs med flera pro­ces­so­rer. I sådana fall ser last­ba­lan­se­ring­en till att kraven fördelas jämnt mellan de olika pro­ces­so­rer­na för att generera mer da­tor­kraft. Last­ba­lan­se­ring är också ef­ter­frå­gat när man använder con­tai­ner­pro­gram­va­ra som Ku­ber­ne­tes. Här ser de till att ar­bets­be­last­ning­en fördelas effektivt mellan olika poddar.

Hur fungerar last­ba­lan­se­ring?

För­fråg­ning­ar till en webb­ser­ver, t.ex. i form av sid­vis­ning­ar, körs initialt på last­ba­lan­se­ra­ren. Denna tar sedan över last­för­del­ning­en genom att vi­da­re­be­ford­ra åt­komst­för­sö­ken till olika servrar. Last­ba­lan­se­ra­ren kan im­ple­men­te­ras som hårdvara eller mjukvara, men principen förblir densamma: en förfrågan når last­ba­lan­se­ra­ren och, beroende på vilken metod som används, vi­da­re­be­ford­rar enheten eller mjukvaran data till relevant server.

Den tekniska grunden är DNS-pro­ce­du­ren: Användare kommer åt en webbplats endast via en URL. Denna omvandlas till en IP-adress med hjälp av DNS, som sedan pekar på last­ba­lan­se­ra­ren. Idealt sett märker an­vän­dar­na inte av denna process.

Bild: Diagram of how load balancing works
A load balancer dis­tri­bu­tes the load of client accesses over the internet or web to various servers.

Vilka är för­de­lar­na med ba­lan­se­rad last­ba­lan­se­ring?

De tre hu­vud­sak­li­ga för­de­lar­na med en väl im­ple­men­te­rad last­ba­lan­se­ra­re är följande:

  • Op­ti­me­ra­de åt­komst­ti­der: Att fördela trafiken över flera servrar kan resultera i kortare åt­komst­ti­der, även när det finns många för­fråg­ning­ar samtidigt.
  • Högre fel­to­le­rans: En last­ba­lan­se­ra­re ökar fel­to­le­ran­sen eftersom trafiken från en långsam server au­to­ma­tiskt omdi­ri­ge­ras till andra servrar i klustret. Om en server är otill­gäng­lig förblir den webbplats som den hostar till­gäng­lig.
  • Förenklat systemun­der­håll: Last­ba­lan­se­ring un­der­lät­tar un­der­hål­let av ett ser­ver­sy­stem avsevärt. Kon­fi­gu­ra­tio­ner och upp­da­te­ring­ar kan utföras medan servrarna är igång utan märkbar pre­stan­da­för­lust. Last­ba­lan­se­rings­en­he­ten de­tek­te­rar un­der­hålls­sta­tus och omdi­ri­ge­rar för­fråg­ning­ar därefter.

Vilka olika typer av last­ba­lan­se­ring finns det?

Hur in­kom­man­de för­fråg­ning­ar fördelas beror på valet av algoritm. Populära al­go­rit­mer för last­ba­lan­se­ring är: Round Robin, Weighted Round Robin, Least Con­nec­tions och Weighted Least Con­nec­tions.

Round Robin

Round Robin beskriver en procedur där in­kom­man­de ser­ver­för­fråg­ning­ar behandlas i en kö av last­ba­lan­se­rings­en­he­ten och dis­tri­bue­ras över en serie servrar. Varje ny förfrågan tilldelas nästa server i sekvensen. Som ett resultat kan åt­komst­för­fråg­ning­ar fördelas jämnt över last­ba­lan­se­rings­klust­ret. Oavsett hur bråds­kan­de begäran är eller hur stor ser­ver­be­last­ning­en är, behandlar Round Robin alla processer på samma sätt. Last­ba­lan­se­ra­re som fungerar enligt round-robin-principen är särskilt lämpliga för miljöer där alla instanser har ungefär samma resurser till­gäng­li­ga.

Viktad rundtur

Svag­he­ter­na hos den klassiska round-robin-al­go­rit­men i he­te­ro­ge­na ser­verklus­ter kan ba­lan­se­ras med en viktad round-robin-för­del­ning. In­kom­man­de för­fråg­ning­ar fördelas med hänsyn till den statiska vikt­ning­en för varje server. Denna viktning de­fi­nie­ras i förväg av ad­mi­nist­ra­tö­ren.

Den mest kraft­ful­la servern kan till exempel tilldelas värdet ”100”, medan mindre effektiva servrar tilldelas värdet ”50”. I en sådan kon­fi­gu­ra­tion skulle servern med vikten ”100” ta emot två för­fråg­ning­ar per omgång från last­ba­lan­se­ring­en, medan servern med vikten ”50” endast skulle ta emot en förfrågan. Weighted Round Robin bör främst användas vid last­ba­lan­se­ring när servrarna i klustret har olika resurser till­gäng­li­ga.

Färre an­slut­ning­ar

Båda round-robin-al­go­rit­mer­na tar inte hänsyn till hur många an­slut­ning­ar de un­der­ord­na­de servrarna måste upp­rätt­hål­la under en viss period när last­ba­lan­se­ra­ren dis­tri­bu­e­rar ser­ver­för­fråg­ning­ar i serie. Detta kan leda till att flera an­slut­ning­ar samlas på en server i klustret. Detta leder till att servern blir över­be­las­tad, även om den hanterar färre an­slut­ning­ar än andra. Al­go­rit­men för minst antal an­slut­ning­ar skyddar mot detta. Den dis­tri­bu­e­rar för­fråg­ning­ar baserat på de be­fint­li­ga an­slut­ning­ar­na för varje server – denmed minst antal aktiva an­slut­ning­ar får nästa förfrågan från last­ba­lan­se­ra­ren. Denna last­ba­lan­se­rings­me­tod re­kom­men­de­ras för homogena ser­verklus­ter där alla datorer har jäm­för­ba­ra resurser till­gäng­li­ga.

Viktade minsta an­slut­ning­ar

Om ett ser­verklus­ter har olika kapacitet bör man istället för al­go­rit­men för minsta antal an­slut­ning­ar använda last­ba­lan­se­ring baserad på den viktade för­del­ning­en av be­fint­li­ga an­slut­ning­ar. Detta tar hänsyn till både antalet aktiva an­slut­ning­ar som en server har och den viktning som de­fi­ni­e­rats av ad­mi­nist­ra­tö­ren. Detta sä­ker­stäl­ler en ba­lan­se­rad last­för­del­ning inom ser­verklust­ret. Nya för­fråg­ning­ar tilldelas au­to­ma­tiskt av last­ba­lan­se­ring­en till de servrar vars för­hål­lan­de mellan aktiva an­slut­ning­ar och re­spek­ti­ve ser­ver­vikt­ning tyder på den lägsta aktuella be­last­ning­en.

Vilka problem kan uppstå vid an­vänd­ning av last­ba­lan­se­ring?

Särskilt inom e-handeln är last­ba­lan­se­ring ofta en utmaning. Här är ett exempel: Besökare på en webbplats lägger varor som de vill köpa i sin varukorg. Dessa varor sparas under hela sessionen, oavsett vilken sida an­vän­dar­na navigerar till inom online-mark­nads­plat­sen. En typisk last­ba­lan­se­ra­re skulle fördela för­fråg­ning­ar­na mellan olika servrar. Detta innebär att in­ne­hål­let i va­ru­kor­gen skulle gå förlorat.

För att lösa detta problem finns två möjliga till­vä­ga­gångs­sätt. För det första kan last­ba­lan­se­ring­en svara på an­vän­dar­nas IP-adress. Då dirigeras till exempel för­fråg­ning­ar från samma IP-adress alltid till samma server. En annan metod skulle vara att läsa ett sessions-ID från själva förfrågan för att avgöra vilken server förfrågan ska skickas till.

Varför är last­ba­lan­se­ra­re så viktiga?

Om du tjänar dina pengar via internet har ditt företag inte råd med ser­verav­brott. Och om du bara använder en server och den kraschar på grund av över­be­last­ning är din webbplats inte längre till­gäng­lig för po­ten­ti­el­la kunder. Detta leder till flera problem: För det första kan du inte generera intäkter under över­be­last­ning­en. Tjänster kan inte bokas och köp kan inte göras. Dessutom minskar för­tro­en­det från (po­ten­ti­el­la) kunder. Det är dubbelt så illa för användare som upplever en ser­verö­ver­be­last­ning under be­ställ­nings­pro­ces­sen. Det råder ofta stor osäkerhet, och de drabbade vet inte om be­ställ­ning­en faktiskt har kommit fram och re­gi­stre­rats i systemet.

Även om du inte erbjuder tjänster direkt via internet bör din webbplats vara till­gäng­lig hela tiden. En webbplats är en av de vik­ti­gas­te kanalerna för att få tillgång till in­for­ma­tion. Om po­ten­ti­el­la kunder söker efter in­for­ma­tion om ditt företag online och inte kan nå din webbplats är det mer troligt att de överväger dina kon­kur­ren­ter. Du kan minimera sådana risker med en last­ba­lan­se­ra­re.

Hur man im­ple­men­te­rar last­ba­lan­se­ring i sin verk­sam­het

Last­ba­lan­se­ring kan im­ple­men­te­ras med hjälp av både hårdvaru- och mjuk­va­ru­lös­ning­ar på en virtuell server. Pro­fes­sio­nel­la kompletta paket erbjuds av många le­ve­ran­tö­rer, antingen som In­frastructu­re-as-a-Service (IaaS) eller som en nät­verks­kom­po­nent för din egen IT-in­fra­struk­tur.

Eftersom an­skaff­ning­en av egna last­ba­lan­se­ra­re oftast medför höga kostnader, vänder sig mindre företag ofta till öppen käll­kods­lös­ning­ar som NGINX. Det är ett kost­nads­ef­fek­tivt sätt att sä­ker­stäl­la hög till­gäng­lig­het för ditt företags webbplats eller andra webb­pro­jekt genom effektiv last­för­del­ning inom ser­ver­nät­ver­ket. Inom webb­ho­tells­sek­torn erbjuds last­ba­lan­se­ring också ofta som en tilläggs­funk­tion för moln­serv­rar.

Gå till huvudmeny