Door Arjen van der Meijden

Lead Developer

Loadbalancing bij Tweakers.net

Loadbalancing in het algemeen

Tweakers.net serverpark aankondigingspicjeWat houdt loadbalancing in? Loadbalancing betekent heel letterlijk het verdelen van werk over meerdere uitvoerenden. In praktijk houdt dat voor Tweakers.net in dat wij de binnenkomende requests (opdrachten van bezoekers om pagina's te genereren) voor de verschillende websites verdelen over het serverpark. Dat dit een groot aantal voordelen heeft hoeven wij je waarschijnlijk niet te vertellen, maar toch noemen wij een aantal redenen die voor ons van belang waren:

  • Als er een server uitvalt wordt dat opgevangen door de andere servers uit de groep servers (de serverpool). Hetzelfde geldt uiteraard voor servers die vanwege onderhoudsredenen worden platgelegd.

  • Indien een bepaalde website ineens heel zwaar belast wordt staan de andere servers klaar om die verzwaring samen op te vangen. Zonder loadbalancing zou één server op eigen houtje alle extra aandacht moeten verwerken, iets wat meestal resulteert in een niet bereikbare site.

Loadbalancing wordt dus meestal om twee redenen toegepast; het verdelen van de werklast en het verlagen van het aantal 'Single Point of Failures'.

* Hoe doet Tweakers.net dat op dit moment?

Momenteel proberen we de websites zo goed mogelijk te verdelen over de servers, rekening houdend met de zwaarte van de verschillende onderdelen. De frontpage wordt door middel van een zogenaamde 'round robin DNS' verdeeld over verschillende webservers. Dit betekent dat er meerdere servers zijn die reageren op de naam www.tweakers.net, omdat de DNS-server instructies heeft om het IP-adres van een willekeurige server uit de groep terug te geven wanneer iemand om de naam www.tweakers.net vraagt. Het nadeel van deze methode is vrij makkelijk te zien; als er een server uitvalt zal een deel van de requests niet afgehandeld worden omdat de DNS-server niet controleert of een bepaalde server wel online is. Stel dus dat één van de drie servers uitvalt, dan komt een derde van de bezoekers bij een dode server uit. Ook een nadeel is dat de DNS server niet kan zien hoeveel werk de servers hebben, hierdoor kan het nog steeds voorkomen dat een server, die te veel werk heeft, aangesproken wordt.

* Enkele andere manieren van loadbalancing

Naast de vrij primitieve 'round robin'-methode is het ook mogelijk om een speciale server in te zetten als 'front-end'. Deze vangt dan alle connecties op en stuurt deze door naar één van de servers uit de serverpool. De zogenaamde 'virtual server' software voor Linux is een voorbeeld van een pakket dat dit kan regelen. Net toen we bezig waren om een dergelijke constructie te implementeren werden we benaderd door BrainForce, met de vraag of we niet toevallig interesse hadden om de nieuwe One4Net B-100 opstelling uit te proberen.

Brainforce B-100 loadbalancer


Uiteraard zijn er nog vele andere manieren van loadbalancing, zo zijn er een aantal softwarematige methoden. Een ervan is het inzetten van een reverse-proxy met bijvoorbeeld mod_backhand, maar hoewel dit best aardig werkt hou je natuurlijk een 'Single Point of Failure'.

Er zijn natuurlijk ook vele hardwarematige oplossingen. De zelfbouw Cisco, BigIP en

Wat vind je van dit artikel?

Geef je mening in het Geachte Redactie-forum.

Nintendo Switch (OLED model) Apple iPhone SE (2022) LG G1 Google Pixel 6 Call of Duty: Vanguard Samsung Galaxy S22 Garmin fēnix 7 Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2022 Hosting door True

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee