Aangezien er binnenkort een tweede webserver (Waarover nog een .plan volgt) bijkomt, genaamd Artemis, leek het ons een goed idee gebruik te maken van het principe "Load-Balancing".
Wat is dat nou weer?!
Load balancen is precies wat het woord betekend, load verdelen. Nou kom je op de vraag "Wat is load". Load is het aantal rtr(Ready to Run)-processen dat de CPU moet wachten voor hij verder kan gaan met het verder verwerken van processen (processen zijn instructies naar de CPU, zoals programmaatjes etc).
Deze load moet zo laag mogelijk blijven. Alhoewel ik niet 100% zeker kan zijn dat deze uitleg klopt (er is totaal geen documentatie te vinden over load en load-average), ben ik er aardig van overtuigd dat ik dicht in de buurt zit
Als je bijvoorbeeld een koetje draait, en verder geen andere CPU-intensieve taken, zal je load op 1.00 komen te staan. Veel mensen denken dat dit het maximale is, maar dat is niet zo, de load kan zelfs boven de 80.00 raken. Zoiets kan bijvoorbeeld veroorzaakt worden door een organisme als UBB.
Om de load zo laag mogelijk te houden, kan men gebruik maken van Load Balancing. Er zijn verschillende manieren om load te balancen, dit kan Hardwarematig (ontzettend duur), en softwarematig (prijs van software, meestal gratis). Ik kies voor het laatste. Ik wil gebruik maken van mod_backhand, een module die in Apache (de webserver-software) kan worden geladen.
In tegenstelling tot de meeste (hardwarematige) loadbalancers maakt deze geen gebruik van de verschillende verbindingen naar de webserver, maar werkt hij op een per-request basis. Elk verzoek dat door je browser aan de webserver word doorgegeven, gaat eerst langs mod_backhand. Mod_backhand kijkt vervolgens, door middel van broadcasts aan het Tweakers.net vlan, welke server de minste load heeft. Daar stuurt hij dan de requests aan door.
Binnenkort meer over Artemis en het Load-Balancing avontuur