Sådan fordeles serverbelastningen med en load balancer
Ved at anvende belastningsfordeling kan serveradgangen fordeles jævnt på forskellige hardwareressourcer via en teknisk enhed kaldet en belastningsfordeler. Dette sikrer stabile adgangshastigheder, hvilket er afgørende for at generere kundeemner og kunder.
Hvad er belastningsfordeling?
Lastfordeling er især udbredt inden for serverteknologi og beskriver en metode, hvor anmodninger fordeles mellem forskellige servere i baggrunden, uden at brugerne bemærker det. Den lastfordeler, der anvendes til dette, kan implementeres som hardware eller software. Den tildeler flere servere til et domæne uden at forårsage adressekonflikter og tilgås via det offentlige domæne.
De underordnede webservere navngives med domænetillæggene www1, www2, www3 osv. Dette gør det muligt at anvende belastningsfordeling, så et websted er tilgængeligt under den samme URL, selvom der er flere servere bagved. Dette forhindrer overbelastning af serverne, da eksterne anmodninger fordeles på forskellige fysiske maskiner inden for klyngen. Brugerne bemærker som regel ikke dette, da fordelingen af anmodningerne foregår i baggrunden på baggrund af komplekse algoritmer.
Lastfordeling kan også spille en rolle ud over webservere, f.eks. i forbindelse med computere, der kører med flere processorer. I sådanne tilfælde sikrer lastfordeleren, at belastningen fordeles jævnt på de forskellige processorer for at opnå større regnekraft. Der er også brug for lastfordelere, når man anvender containersoftware som Kubernetes. Her sikrer de, at arbejdsopgaverne fordeles effektivt på de forskellige pods.
Hvordan fungerer belastningsfordeling?
Anmodninger til en webserver, f.eks. i form af sidevisninger, behandles i første omgang af load balanceren. Denne overtager derefter belastningsfordelingen ved at videresende adgangsforsøgene til forskellige servere. Load balanceren kan implementeres som hardware eller software, men princippet er det samme: En anmodning modtages af load balanceren, og afhængigt af den anvendte metode videresender enheden eller softwaren dataene til den relevante server.
Det tekniske grundlag er DNS-proceduren: Brugere får kun adgang til en hjemmeside via en URL. Denne omdannes til en IP-adresse ved hjælp af DNS, som derefter peger på load balanceren. Ideelt set bemærker brugerne ikke denne proces.

Hvad er fordelene ved afbalanceret belastningsfordeling?
De tre vigtigste fordele ved en korrekt implementeret load balancer er følgende:
- Optimerede responstider: Fordeling af trafikken på flere servere kan medføre kortere responstider, selv når der er mange anmodninger på samme tid.
- Højere fejltolerance: En load balancer øger fejltolerancen, da trafikken fra en langsom server automatisk omdirigeres til andre servere i klyngen. Hvis en server er utilgængelig, forbliver det hostede websted tilgængeligt.
- Forenklet systemvedligeholdelse: Load balancing understøtter i høj grad vedligeholdelsen af et serversystem. Konfigurationer og opdateringer kan udføres, mens serverne kører, uden mærkbart tab af ydeevne. Load balanceren registrerer vedligeholdelsestilstande og omdirigerer anmodninger i overensstemmelse hermed.
Hvilke forskellige typer af belastningsfordeling findes der?
Hvordan indgående anmodninger fordeles, afhænger af valget af algoritme. Populære algoritmer til belastningsfordeling er: Round Robin, Weighted Round Robin, Least Connections og Weighted Least Connections.
Round Robin
Round Robin er en metode, hvor indgående serveranmodninger behandles i en kø af load balanceren og fordeles på en række servere. Hver nye anmodning tildeles den næste server i rækkefølgen. Dermed kan adgangsanmodningerne fordeles jævnt på load balancing-klyngen. Uanset hvor presserende anmodningen er, eller hvor stor serverbelastningen er, behandler Round Robin alle processer ens. Load balancere, der fungerer efter round-robin-princippet, er særligt velegnede til miljøer, hvor alle instanser har omtrent de samme ressourcer til rådighed.
Vægtet Round Robin
Svaghederne ved den klassiske round-robin-algoritme i heterogene serverklynger kan udlignes ved hjælp af en vægtet round-robin-fordeling. Indkommende anmodninger fordeles under hensyntagen til den statiske vægtning af hver enkelt server. Denne vægtning fastlægges på forhånd af administratoren.
Den mest kraftfulde 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 anmodninger pr. runde fra load balanceren, 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 forskellige ressourcer til rådighed.
Færrest forbindelser
Begge round-robin-algoritmer tager ikke højde for, hvor mange forbindelser de underordnede servere skal opretholde over en bestemt periode, når load balanceren fordeler serveranmodningerne i rækkefølge. Dette kan medføre, at flere forbindelser hober sig op på én server i klyngen. Det fører til, at serveren bliver overbelastet, selvom den håndterer færre forbindelser end de andre. Least-connections-algoritmen beskytter mod dette. Den fordeler anmodninger baseret på de eksisterende forbindelser på hver server– den med færrest aktive forbindelser modtager den næste anmodning fra load balanceren. Denne load balancing-metode anbefales til homogene serverklynger, hvor alle computere har sammenlignelige ressourcer til rådighed.
Vægtet mindst antal forbindelser
Hvis et serverklynge har forskellige kapaciteter, bør der i stedet for algoritmen med færrest forbindelser anvendes belastningsfordeling baseret på en vægtet fordeling af eksisterende forbindelser. Dette tager højde for både antallet af aktive forbindelser på en server og den vægtning, som administratoren har defineret. Dette sikrer en afbalanceret belastningsfordeling inden for serverklyngen. Nye anmodninger tildeles automatisk af belastningsfordeleren til de servere, hvor forholdet mellem aktive forbindelser og den respektive servervægtning tyder på den laveste aktuelle belastning.
Hvilke problemer kan opstå ved brug af belastningsfordeling?
Især inden for e-handel står belastningsfordeling ofte over for udfordringer. Her er et eksempel: Besøgende på en hjemmeside lægger varer i deres indkøbskurv, som de ønsker at købe. Disse varer forbliver gemt i hele sessionen, uanset hvilken side brugerne navigerer til inden for onlinebutikken. En typisk belastningsfordeler ville fordele anmodningerne på forskellige servere. Det betyder, at indholdet af indkøbskurven ville gå tabt.
For at løse dette problem kan man forestille sig to fremgangsmåder. For det første kan load balanceren reagere på brugerens IP-adresse. På den måde vil anmodninger 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 anmodningen for at afgøre, hvilken server anmodningen skal sendes til.
Hvorfor er load balancers så vigtige?
Hvis du tjener dine penge via internettet, har din virksomhed ikke råd til, at serveren går ned. Og hvis du kun bruger én server, og den går ned på grund af overbelastning, kan potentielle kunder ikke længere få adgang til din hjemmeside. Det medfører flere problemer: For det første kan du ikke generere indtægter, mens overbelastningen varer. Der kan ikke bookes tjenester, og der kan ikke foretages køb. Derudover falder tilliden hos (potentielle) kunder. Det er dobbelt så slemt for brugere, der oplever en serveroverbelastning under bestillingsprocessen. Der er ofte stor usikkerhed, og de berørte ved ikke, om bestillingen faktisk er gået igennem og er blevet registreret i systemet.
Selvom du ikke tilbyder tjenester direkte via internettet, bør din hjemmeside altid være tilgængelig. En hjemmeside er en af de vigtigste kanaler til at finde information. Hvis potentielle kunder søger oplysninger om din virksomhed online og ikke kan få adgang til din hjemmeside, er der større sandsynlighed for, at de i stedet vil overveje dine konkurrenter. Du kan minimere sådanne risici ved hjælp af en load balancer.
Sådan implementerer du belastningsfordeling i din virksomhed
Lastfordeling kan implementeres ved hjælp af både hardware- og softwareløsninger på en virtuel server. Mange udbydere tilbyder professionelle, komplette pakker, enten som Infrastructure-as-a-Service (IaaS) eller som en netværkskomponent til din egen IT-infrastruktur.
Da anskaffelsen af proprietære load balancere normalt er forbundet med høje omkostninger, vælger mindre virksomheder ofte open source-løsninger som NGINX. Det er en omkostningseffektiv måde at sikre høj tilgængelighed for virksomhedens hjemmeside eller andre webprojekter gennem en effektiv fordeling af belastningen inden for servernetværket. Inden for webhosting tilbydes load balancing også ofte som en ekstra funktion til cloud-servere.