Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 17 reacties

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.

Mod_backhand

Binnenkort meer over Artemis en het Load-Balancing avontuur

Moderatie-faq Wijzig weergave

Reacties (17)

Tja.. wat is load eigenlijk...
even gezocht en het volgende antwoord:


up 18:45:57 load average: 0.76, 0.48, 0.45
The load average information (printed out by uptime command) is computed as follows:

load average (1 min.) = 10,000/loopsPerSecond in the last minute interval
load average (5 min.) = 10,000/loopsPerSecond in last 5 minute interval
load average (15 min.) = 10,000/loopsPerSecond in the last 15 minute interval

The term loopsPerSecond is the count of the number of times the main processing loop is executed each second. As the load increases on the system, the loopsPerSecond value goes down. Load average being the inverse of loopsPerSecond, a higher value would indicate more load on the system (CPU). A value of 5 is considered reasonable.

The main processing loop is a single threaded process, in which the arriving packet is processed from start to finish.


Dus niet meer dan een gemiddelde van hoe lang het hoofdproces gemiddeld aan de beurt is geweest de afgelopen tijd.
Hoe hoger de load, des te minder tijd het hoofdproces heeft gehad.

Nog een opmerking.. de waardes (10.000 in dit artikel) kloppen niet.. deze zijn verschillend per computer (/ onderdeel) de hier genoemde waardes zijn geldend voor een LanRover VPN Gateway.

Dus Rick..dát is load... correct me if i'm wrong

Kees
Ja en nee..

Als appie een load van 2,00 heeft betekent het dus dat het hoofdproces (ik weet niet zeker wat het hoofdproces is, ik denk het proces dat de meeste cpu tijd opslokt het is (uitgezonderd idletime dan)) ... goed, het hoofdproces heeft dan dus een CPU-usage van 50% (50% van de cpu tijd wordt aan dat proces besteed)

als je een load van 5 hebt krijgt het belangrijkste proces nog maar 20% van de cpu tijd....
dus dat kan (hoeft niet) knap irritant zijn, zeker als je wil (en dat wil je) dat jouw proces alle tijd krijgt..

(vgl. W2k, dnetc heeft een cpu-usage van 99%, in linux zou dit dus een load zijn van +/- 1,01..... een linuxkoe zou dus in principe meer blokjes moeten kunnen grazen omdat hij meer cpu-tijd van het OS krijgt (100% tegen 99%))

Kees
Femme:</div><div class=b4>Load cijfertjes snap ik nog steeds geen snars van. CPU idle time (in procenten) kan ik snappen, maar load cijfertjes niet. Appie heeft soms een load van 2.00 (veel?) maar is wel >85% idle. Athena heeft bijv. een load van 0.05 en is dan >95% idle.</div><div class=b1>Indien je een load van 2 hebt, is dit nog niet zo schrikbarend (zeker niet als je 2 cpu's of meer hebt, load van 2 op een 2 cpu machine = optimaal)
Maar als jij een 85% Idle heb, zit je ergens anders met een mogelijk "probleem" en waarschijnlijk op systeem (netw.interf. / disks / locking probl. met software ..... etc)
Mijn eigen machine (dual cpu) staat continu op een load van 2.00 met 0.00% Idle, maar daar heb ik dan ook een paar koeien op loeien.
Wat ook mogelijk is, is een "verkeerd" gecompileerde kernel ! Er is een optie in de config waarmee je kan aangeven dat er door de cpu Idle-calls gemaakt moeten worden, (heb ik zelf een keertje gehad :) ) en dan heb je ook continu een load van 2.00 zonder dat er iets gedaan wordt.
Ik heb toen de config aangepast en een nieuwe kernel gebakken, en probleem was opgelost.

Over load-balancing: je kan ook met DNS een load-balancing doen.
Als je gebruik maakt van Round-Robin (makkelijkst en tevens het goedkoopst) wordt er om en om gewisseld tussen twee of meer ip-adressen.
Er zijn tevens methodieken waarbij de load gebaseerd zijn op netw.-load of cpu-load om die dan naar de ene of de andere machine te sturen, maar op Linux weet ik niet of dat er is en hoe het precies werkt cq. geconfigured moet worden.
Hmm, mijn reactie was ook verdwenen. Ik wilde even wijzen op www.mosix.org , waar een kernel aanpassing te vinden is die voor loadbalancing over een netwerk zorgt. Lijkt me de moeite waard om op te klikken.


* 786562 ajvdvegt
Load Balancing / Load sharing, kan allemaal errug ingewikkeld worden.
tip voor Rick: kijk ook eens bij www.stonebeat.com/news/news/7214.html
een professioneel proggie voor load balancing.
* 786562 CurryNormaliter slaat de term 'Load Balancing' op het verdelen van taken over verscheidende CPU's, of zonodig meerdere workstations. Dit wordt dan gedaan op basis van eerst de prioriteit (in Win32 eerst prioriteitsklasse en daarna subprioriteit) en daarna op basis van het gemiddelde CPU-tijd-verbruik van de task op dat moment (ik geloof dat kerneltime hier genegeerd wordt)
Zodra je load boven de 1.00 gaat heb je geen idle-time (onder Windows is dat knap funest voor veel GUI's trouwens), maar worden de tasks direct gestacked. De meeste applicaties slurpen namelijk niet constant tijd, maar verkeren in een 'waiting' status, op een hardware- of softwaresignaal (waarbij een 'sleep 10 milliseconds' een softwaresignaal is). Op het moment dat alle processen in 'waiting' state verkeren heb je de beroemde idle time.
Bij loads boven de 1.00 heb je niet alleen geen idle time, maar zelfs waiting time. Lagere prioriteitssignalen worden dan vertraagd (later) verwerkt, omdat time-critical processen dan voorrang krijgen.
* 786562 Curry
* 786562 Curry
Load cijfertjes snap ik nog steeds geen snars van. CPU idle time (in procenten) kan ik snappen, maar load cijfertjes niet. Appie heeft soms een load van 2.00 (veel?) maar is wel >85% idle. Athena heeft bijv. een load van 0.05 en is dan >95% idle.
</div><div class=b4>Er zijn tevens methodieken waarbij de load gebaseerd zijn op netw.-load of cpu-load om die dan naar de ene of de andere machine te sturen,</div><div class=b1>
Zoals mod_backhand dus, die gebruikt gaat worden. :)
Artemis is ook de naam van de news-feed en koersen-informatie-feed van de Amsterdamse Beurs... JFYI...
Ach ja, zo is er waarschijnlijk nog een hele rij dingen die Artemis heten. Maakt dat uit? Neuh...

Klassieke namen zijn gewoon leuk. :)

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True