Ved at anvende be­last­nings­for­de­ling kan ser­ve­r­ad­gan­gen fordeles jævnt på for­skel­li­ge hardwa­reres­sour­cer via en teknisk enhed kaldet en be­last­nings­for­de­ler. Dette sikrer stabile ad­gangs­hastig­he­der, hvilket er afgørende for at generere kun­de­em­ner og kunder.

Hvad er be­last­nings­for­de­ling?

Last­for­de­ling er især udbredt inden for ser­ver­tek­no­lo­gi og beskriver en metode, hvor an­mod­nin­ger fordeles mellem for­skel­li­ge servere i bag­grun­den, uden at brugerne bemærker det. Den last­for­de­ler, der anvendes til dette, kan im­ple­men­te­res som hardware eller software. Den tildeler flere servere til et domæne uden at forårsage adres­se­kon­flik­ter og tilgås via det of­fent­li­ge domæne.

De un­der­ord­ne­de web­ser­ve­re navngives med do­mæ­ne­til­læg­ge­ne www1, www2, www3 osv. Dette gør det muligt at anvende be­last­nings­for­de­ling, så et websted er til­gæn­ge­ligt under den samme URL, selvom der er flere servere bagved. Dette for­hin­drer over­be­last­ning af serverne, da eksterne an­mod­nin­ger fordeles på for­skel­li­ge fysiske maskiner inden for klyngen. Brugerne bemærker som regel ikke dette, da for­de­lin­gen af an­mod­nin­ger­ne foregår i bag­grun­den på baggrund af komplekse al­go­rit­mer.

Last­for­de­ling kan også spille en rolle ud over web­ser­ve­re, f.eks. i for­bin­del­se med computere, der kører med flere pro­ces­so­rer. I sådanne tilfælde sikrer last­for­de­le­ren, at be­last­nin­gen fordeles jævnt på de for­skel­li­ge pro­ces­so­rer for at opnå større reg­ne­kraft. Der er også brug for last­for­de­le­re, når man anvender con­tai­ner­softwa­re som Ku­ber­ne­tes. Her sikrer de, at ar­bejds­op­ga­ver­ne fordeles effektivt på de for­skel­li­ge pods.

Hvordan fungerer be­last­nings­for­de­ling?

An­mod­nin­ger til en webserver, f.eks. i form af si­de­vis­nin­ger, behandles i første omgang af load ba­lan­ce­ren. Denne overtager derefter be­last­nings­for­de­lin­gen ved at vi­de­re­sen­de ad­gangs­for­sø­ge­ne til for­skel­li­ge servere. Load ba­lan­ce­ren kan im­ple­men­te­res som hardware eller software, men prin­cip­pet er det samme: En anmodning modtages af load ba­lan­ce­ren, og afhængigt af den anvendte metode vi­de­re­sen­der enheden eller softwaren dataene til den relevante server.

Det tekniske grundlag er DNS-pro­ce­du­ren: Brugere får kun adgang til en hjem­mesi­de via en URL. Denne omdannes til en IP-adresse ved hjælp af DNS, som derefter peger på load ba­lan­ce­ren. Ideelt set bemærker brugerne ikke denne proces.

Billede: Diagram of how load balancing works
A load balancer di­stri­bu­tes the load of client accesses over the internet or web to various servers.

Hvad er fordelene ved af­ba­lan­ce­ret be­last­nings­for­de­ling?

De tre vigtigste fordele ved en korrekt im­ple­men­te­ret load balancer er følgende:

  • Op­ti­me­re­de re­spon­s­ti­der: Fordeling af trafikken på flere servere kan medføre kortere re­spon­s­ti­der, selv når der er mange an­mod­nin­ger på samme tid.
  • Højere fejl­t­o­le­ran­ce: En load balancer øger fejl­t­o­le­ran­cen, da trafikken fra en langsom server au­to­ma­tisk om­di­ri­ge­res til andre servere i klyngen. Hvis en server er util­gæn­ge­lig, forbliver det hostede websted til­gæn­ge­ligt.
  • Forenklet sy­stem­ved­li­ge­hol­del­se: Load balancing un­der­støt­ter i høj grad ved­li­ge­hol­del­sen af et ser­ver­sy­stem. Kon­fi­gu­ra­tio­ner og op­da­te­rin­ger kan udføres, mens serverne kører, uden mærkbart tab af ydeevne. Load ba­lan­ce­ren re­gi­stre­rer ved­li­ge­hol­del­ses­til­stan­de og om­di­ri­ge­rer an­mod­nin­ger i over­ens­stem­mel­se hermed.

Hvilke for­skel­li­ge typer af be­last­nings­for­de­ling findes der?

Hvordan indgående an­mod­nin­ger fordeles, afhænger af valget af algoritme. Populære al­go­rit­mer til be­last­nings­for­de­ling er: Round Robin, Weighted Round Robin, Least Con­nections og Weighted Least Con­nections.

Round Robin

Round Robin er en metode, hvor indgående ser­ve­ran­mod­nin­ger behandles i en kø af load ba­lan­ce­ren og fordeles på en række servere. Hver nye anmodning tildeles den næste server i ræk­ke­føl­gen. Dermed kan ad­gangs­an­mod­nin­ger­ne fordeles jævnt på load balancing-klyngen. Uanset hvor pres­se­ren­de an­mod­nin­gen er, eller hvor stor ser­ver­be­last­nin­gen er, behandler Round Robin alle processer ens. Load balancere, der fungerer efter round-robin-prin­cip­pet, er særligt velegnede til miljøer, hvor alle instanser har omtrent de samme res­sour­cer til rådighed.

Vægtet Round Robin

Svag­he­der­ne ved den klassiske round-robin-algoritme i he­te­ro­ge­ne ser­ver­klyn­ger kan udlignes ved hjælp af en vægtet round-robin-fordeling. Ind­kom­men­de an­mod­nin­ger fordeles under hen­syn­ta­gen til den statiske vægtning af hver enkelt server. Denne vægtning fast­læg­ges på forhånd af ad­mi­ni­stra­to­ren.

Den mest kraft­ful­de server kan for eksempel tildeles værdien »100«, mens mindre effektive servere får værdien »50«. I en sådan opsætning vil den server, der er vægtet til »100«, modtage to an­mod­nin­ger pr. runde fra load ba­lan­ce­ren, mens den server, der er vægtet til »50«, kun vil modtage én anmodning. Weighted Round Robin bør primært anvendes til load balancing, når serverne i klyngen har for­skel­li­ge res­sour­cer til rådighed.

Færrest for­bin­del­ser

Begge round-robin-al­go­rit­mer tager ikke højde for, hvor mange for­bin­del­ser de un­der­ord­ne­de servere skal op­ret­hol­de over en bestemt periode, når load ba­lan­ce­ren fordeler ser­ve­ran­mod­nin­ger­ne i ræk­ke­føl­ge. Dette kan medføre, at flere for­bin­del­ser hober sig op på én server i klyngen. Det fører til, at serveren bliver over­be­la­stet, selvom den håndterer færre for­bin­del­ser end de andre. Least-con­nections-al­go­rit­men beskytter mod dette. Den fordeler an­mod­nin­ger baseret på de ek­si­ste­ren­de for­bin­del­ser på hver server– den med færrest aktive for­bin­del­ser modtager den næste anmodning fra load ba­lan­ce­ren. Denne load balancing-metode anbefales til homogene ser­ver­klyn­ger, hvor alle computere har sam­men­lig­ne­li­ge res­sour­cer til rådighed.

Vægtet mindst antal for­bin­del­ser

Hvis et ser­ver­klyn­ge har for­skel­li­ge ka­pa­ci­te­ter, bør der i stedet for al­go­rit­men med færrest for­bin­del­ser anvendes be­last­nings­for­de­ling baseret på en vægtet fordeling af ek­si­ste­ren­de for­bin­del­ser. Dette tager højde for både antallet af aktive for­bin­del­ser på en server og den vægtning, som ad­mi­ni­stra­to­ren har defineret. Dette sikrer en af­ba­lan­ce­ret be­last­nings­for­de­ling inden for ser­ver­klyn­gen. Nye an­mod­nin­ger tildeles au­to­ma­tisk af be­last­nings­for­de­le­ren til de servere, hvor forholdet mellem aktive for­bin­del­ser og den respek­ti­ve ser­ver­vægt­ning tyder på den laveste aktuelle be­last­ning.

Hvilke problemer kan opstå ved brug af be­last­nings­for­de­ling?

Især inden for e-handel står be­last­nings­for­de­ling ofte over for ud­for­drin­ger. Her er et eksempel: Besøgende på en hjem­mesi­de lægger varer i deres ind­købs­kurv, som de ønsker at købe. Disse varer forbliver gemt i hele sessionen, uanset hvilken side brugerne navigerer til inden for on­li­ne­bu­tik­ken. En typisk be­last­nings­for­de­ler ville fordele an­mod­nin­ger­ne på for­skel­li­ge servere. Det betyder, at indholdet af ind­købs­kur­ven ville gå tabt.

For at løse dette problem kan man fo­re­stil­le sig to frem­gangs­må­der. For det første kan load ba­lan­ce­ren reagere på brugerens IP-adresse. På den måde vil an­mod­nin­ger fra den samme IP-adresse for eksempel altid blive dirigeret til den samme server. En anden metode ville være at udlæse et sessions-ID fra selve an­mod­nin­gen for at afgøre, hvilken server an­mod­nin­gen skal sendes til.

Hvorfor er load balancers så vigtige?

Hvis du tjener dine penge via in­ter­net­tet, har din virk­som­hed ikke råd til, at serveren går ned. Og hvis du kun bruger én server, og den går ned på grund af over­be­last­ning, kan po­ten­ti­el­le kunder ikke længere få adgang til din hjem­mesi­de. Det medfører flere problemer: For det første kan du ikke generere indtægter, mens over­be­last­nin­gen varer. Der kan ikke bookes tjenester, og der kan ikke foretages køb. Derudover falder tilliden hos (po­ten­ti­el­le) kunder. Det er dobbelt så slemt for brugere, der oplever en ser­ver­over­be­last­ning under be­stil­lings­pro­ces­sen. Der er ofte stor usik­ker­hed, og de berørte ved ikke, om be­stil­lin­gen faktisk er gået igennem og er blevet re­gi­stre­ret i systemet.

Selvom du ikke tilbyder tjenester direkte via in­ter­net­tet, bør din hjem­mesi­de altid være til­gæn­ge­lig. En hjem­mesi­de er en af de vigtigste kanaler til at finde in­for­ma­tion. Hvis po­ten­ti­el­le kunder søger op­lys­nin­ger om din virk­som­hed online og ikke kan få adgang til din hjem­mesi­de, er der større sand­syn­lig­hed for, at de i stedet vil overveje dine kon­kur­ren­ter. Du kan minimere sådanne risici ved hjælp af en load balancer.

Sådan im­ple­men­te­rer du be­last­nings­for­de­ling i din virk­som­hed

Last­for­de­ling kan im­ple­men­te­res ved hjælp af både hardware- og softwa­re­løs­nin­ger på en virtuel server. Mange udbydere tilbyder pro­fes­sio­nel­le, komplette pakker, enten som In­fra­struc­tu­re-as-a-Service (IaaS) eller som en net­værks­kom­po­nent til din egen IT-in­fra­struk­tur.

Da an­skaf­fel­sen af pro­p­ri­e­tæ­re load balancere normalt er forbundet med høje om­kost­nin­ger, vælger mindre virk­som­he­der ofte open source-løsninger som NGINX. Det er en om­kost­nings­ef­fek­tiv måde at sikre høj til­gæn­ge­lig­hed for virk­som­he­dens hjem­mesi­de eller andre webpro­jek­ter gennem en effektiv fordeling af be­last­nin­gen inden for ser­ver­net­vær­ket. Inden for webhosting tilbydes load balancing også ofte som en ekstra funktion til cloud-servere.

Gå til ho­ved­me­nu­en