Adaptive loadbalancing - berekening

Pagina: 1
Acties:
  • 412 views sinds 30-01-2008
  • Reageer

Acties:
  • 0 Henk 'm!

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 22-09 16:13

Kees

Serveradmin / BOFH / DoC
Topicstarter
Voor de mensen die niet weten wat adaptive loadbalancing is (wat ik er onder versta / hoe ik het gebruik ;)) een kleine uitleg:

Je hebt een loadbalancer, deze haalt elke X seconden een file via http binnen waarin een getal staat. In mijn geval varieerd dit getal tussen de 0 en de 100.

Dit getal geeft de "load" aan van de server, waarbij 0 laag is en 100 een erg hoge load.

Mijn vraag nu is, wat is de beste berekening voor dit getal, welke waardes neem je mee, en welk gewicht geef je eraan.

Mijn initiele berekening:

Percentage gebruikte processortijd: gewicht 40
Percentage gebruikt geheugen: gewicht 30
Loadaverage * 10, met een max van 100: gewicht 30

Dus stel, een server heeft een CPU gebruik van 20%
Een geheugen gebruik van 60%
en een loadavg (over 1 minuut) van 0.19.

Het loadcijfer zou er dan als volgt uitzien:
20 * 40
60 * 30
1.9 * 30
--------- +
2657 / 100 = 27 (afgerond)

Nu is deze berekening gemaakt met bij schatting genomen gewichten en uitgaande van 3 waardes terwijl er meer te bedenken zijn (systeem-cpu gebruik, aantal openstaande connecties etc).

Terugkomend op mijn vraag:
Wat zijn de waardes waar je op moet letten
Welke gewichten geef je eraan

Dit met als doel de load op een webserver weer te geven in een betrouwbaarder cijfer dan alleen het load gemiddelde.

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Acties:
  • 0 Henk 'm!

  • TumbleCow
  • Registratie: Januari 2000
  • Laatst online: 08-09 12:24

TumbleCow

Waarschijnlijkheids elastiekje

Ik zou (ook puur intuitief overigens :)) zeggen dat het gewicht van de hoeveelheid gebruikt geheugen omlaag mag, totdat het een bepaalde grens bereikt..

Of er nu 25% of 60% geheugen gebruikt is maakt in princiepe vrij weinig uit.. (zeker omdat linux graag en veel cached) Maar als het geheugengebruik hoger dan 80% wordt, dan komt de server toch een beetje in een gevaarlijk gebied terecht.

edit: NL blijft moeilijk.

Acties:
  • 0 Henk 'm!

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 20:13

chem

Reist de wereld rond

je zou idd misschien meer rekening moeten houden met wat de server KAN hebbe. 1 of 70% memusage zegt niet zoveel, en sommige bakjes kunnen een load van 2 makkelijker aan dan de ander...

Klaar voor een nieuwe uitdaging.


Acties:
  • 0 Henk 'm!

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 22-09 16:13

Kees

Serveradmin / BOFH / DoC
Topicstarter
inderdaad, nu ik er nog eens over nadenk ;)

bij een dual bak kan het gewicht van loadavg. de helft zijn.

geheugengebruik dynamisch wegen is een leuke optie, if geheugengebruik +85% then gewicht omhoog.

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Acties:
  • 0 Henk 'm!

Verwijderd

ik zou zeker de io-belasting (disks dus) meewegen.
een server kan 10% cpu belasting hebben met
voldoende vrij geheugen, maar met 1 process dat de
complete io-capacitieit verbruikt.
Als dan de load-balancer nog meer processen toelaat,
stort de performance volledig in.

Acties:
  • 0 Henk 'm!

  • PanMan
  • Registratie: November 1999
  • Laatst online: 22-09 11:24

PanMan

Spun!

Ik zou zoiets gebruiken, en dan veel gaan benchmarken, om te kijken of de servers met vergelijkbare "eigen load" (dus dat getal) ook een vergelijkbare response geven, en aan de hand daarvan de wegingsfactoren op de verschillende servers verschillend aanpassen.

Where a calculator on the ENIAC is equipped with 18,000 vacuum tubes and weighs 30 tons, computers in the future may have only 1,000 vacuum tubes and weigh only 1.5 tons.
– Popular Mechanics, March 1949


Acties:
  • 0 Henk 'm!

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 22-09 16:13

Kees

Serveradmin / BOFH / DoC
Topicstarter
Op woensdag 06 maart 2002 12:46 schreef pir-p3 het volgende:
ik zou zeker de io-belasting (disks dus) meewegen.
Dat is inderdaad een goede, enig idee waar ik die onder linux vandaan kan toveren? :o

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Acties:
  • 0 Henk 'm!

  • jeroen|IA
  • Registratie: Juni 1999
  • Laatst online: 26-05 14:46
man iostat :)

Acties:
  • 0 Henk 'm!

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 22-09 16:13

Kees

Serveradmin / BOFH / DoC
Topicstarter

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Acties:
  • 0 Henk 'm!

  • banaan-X
  • Registratie: Februari 2001
  • Niet online
Op woensdag 06 maart 2002 12:43 schreef Kees het volgende:
inderdaad, nu ik er nog eens over nadenk ;)

bij een dual bak kan het gewicht van loadavg. de helft zijn.

geheugengebruik dynamisch wegen is een leuke optie, if geheugengebruik +85% then gewicht omhoog.
dan kun je misschien nog beter een (a^(load))/(a^(max load)) nemen? Bij lage load-waardes komt er vrijwel 0 uit, en bij hoge loads 1. (a=1,05 ofzo nemen). Ofwel: exponentiele groei ;)

(hopelijk is het niet al te onbegrijpelijk...)

Acties:
  • 0 Henk 'm!

  • Squee
  • Registratie: November 2000
  • Laatst online: 07-06 14:28
Op woensdag 06 maart 2002 12:46 schreef pir-p3 het volgende:

ik zou zeker de io-belasting (disks dus) meewegen.

een server kan 10% cpu belasting hebben met

voldoende vrij geheugen, maar met 1 process dat de

complete io-capacitieit verbruikt.

Als dan de load-balancer nog meer processen toelaat,

stort de performance volledig in.
Geeft het eerste getalletje in /proc/loadavg niet genoeg informatie over de load ?
Het zegt namelijk niet alleen maar iets over de cpu belasting, maar het gemiddelde aantal timeslices dat een proces moet wachten tot het aan de beurt is, dus ook als er op i/o moet worden gewacht telt dit mee...

Of is dit allemaal te simpel gedacht? :)

Please do not contact me telepathically.


Acties:
  • 0 Henk 'm!

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 22-09 16:13

Kees

Serveradmin / BOFH / DoC
Topicstarter
dan liever het tweede getal :) (over 1 minuut dus)

Loadaverage onder linux:
code:
1
2
3
4
5
          The load average numbers give the number of jobs in
          the run queue (state R) or waiting for disk I/O
          (state D) averaged over 1, 5 and 15 minutes.  They
          are the same as the load average numbers given by
          uptime(1) and other programs.

Dus in principe kan load gebruikt worden ipv moeilijk met /proc/stats | grep disk_io te werken :)

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Acties:
  • 0 Henk 'm!

  • odysseus
  • Registratie: Augustus 2000
  • Laatst online: 18-09 21:59

odysseus

Debian GNU/Linux Sid

Ik zou in ieder geval zorgen dat bepaalde waarden zwaarder meetellen zodra ze te hoog zijn. 100% geheugengebruik zou bij jouw theoretisch een waarde van 30 op kunnen leveren, terwijl het wel erg kritisch wordt op dat moment. Daarnaast hangt het nogal van de functie van de bak af welke waarden je zwaar laat wegen. Een database zal misschien op disk-i/o beoordeeld worden, een webserver op het aantal connecties en een printserver op geheugengebruik of gewoon loadaverage. Ik zou in ieder geval de volgende punten mee laten wegen:
• CPU-gebruik
• Aantal processen dat status R heeft
• Aantal processen dat status D heeft
• Loadaverage (over minimaal 5 minuten)
• RAM-gebruik
• Swap-gebruik
• netwerk-belasting (als hij al 100Mbit voltrekt dan moet je geen nieuwe taken geven)
• Schijfactiviteit

Gebruik maken van de waarden in /proc lijkt me het meest efficiënt. Hoeveel je alles mee moet laten wegen durf ik niet te zeggen, maar het moet in ieder geval zo zijn dat een enkele (belangrijke) waarde ervoor kan zorgen dat er geen nieuwe taken komen op het moment dat die waarde te hoog is.

Leven is het meervoud van lef | In order to make an apple pie from scratch, you must first create the universe.


Acties:
  • 0 Henk 'm!

  • TumbleCow
  • Registratie: Januari 2000
  • Laatst online: 08-09 12:24

TumbleCow

Waarschijnlijkheids elastiekje

offtopic:
[quote]
[b]Op woensdag 06 maart 2002 17:07 schreef Kees het volgende[/n]
[code] The load average numbers give the number of jobs in
the run queue (state R) or waiting for disk I/O
(state D) averaged over 1, 5 and 15 minutes. They
are the same as the load average numbers given by
uptime(1) and other programs.[/code]

[/quote]

W00T!, waar heb je die beschrijving gevonden?

Ik heb het halve internet afgezocht na een goede beschrijving van 'load'..

Acties:
  • 0 Henk 'm!

  • Prozaq
  • Registratie: Juni 2000
  • Laatst online: 12-08 09:47
[quote]
Op woensdag 06 maart 2002 23:33 schreef wHiTeRaZoR het volgende:
offtopic:
[..]

W00T!, waar heb je die beschrijving gevonden?

Ik heb het halve internet afgezocht na een goede beschrijving van 'load'..
[/quote]

lol... ook hier al eens de search gebruikt :z

Acties:
  • 0 Henk 'm!

  • _-= Erikje =-_
  • Registratie: Maart 2000
  • Laatst online: 15-09 14:23
misschien wel handig om ook de verzadiging van een netwerk verbinding mee te nemen?

Acties:
  • 0 Henk 'm!

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 22-09 16:13

Kees

Serveradmin / BOFH / DoC
Topicstarter
Op woensdag 06 maart 2002 23:33 schreef wHiTeRaZoR het volgende:
offtopic:
[..]

W00T!, waar heb je die beschrijving gevonden?

Ik heb het halve internet afgezocht na een goede beschrijving van 'load'..
tsssssss
man proc

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Puntjes tijdens een icq gesprek met Kees (voor de search, ieder ander die er wat mee wil)

- Geheugen gebruik moet je uiteraard nemen EX filecache.
- Bekijk de output van vmstat 1 es een tijdje tijdens hoge en lage belasting, dan zie (beter?) je waar je op die server naar moet kijken.
- Een schijf die meer dan 95% vol is zal je systeem ook aardig vertragen. Een schijf die 100% vol is moet je absoluut 100 als "load" geven :)
- In geval van een webserver, bekijk es hoeveel apache's er al open zijn tov het maximum dat er in de configfiles staat. Parse evt apache's status-info mbt cpu-usage en requests/sec.

Acties:
  • 0 Henk 'm!

Verwijderd

[Even hardop denken modus]
Ik zie de toegevoegde waarde van de berekening niet zo. De uitkomst van de berekening zal lastig te interpreteren zijn. Als er een waarde 50 uit de berekening zou komen (ik noem maar een willekeurig voorbeeld) zou dat op allerlei manieren berekend kunnen worden. Zo zou dat zijn kunnen onstaan door een erg hoog geheugengebruik en weinig cpu en i/o. Of door een erg hoog i/o en weinig cpu en gemiddeld geheugengebruik. Dat kun je aan de uitkomst van de berekening niet meer zien.
Ik zou een aantal punten pakken die ik wilde meten (die zijn al aan bod geweest bij anderen in dit topic) en daar een soort status aan verbinden.
Bijvoorbeeld
loadaverage 0-0.5 = 0 (rustig)
loadaverage 0.5-1.0 = 1 (normaal)
loadaverage >1 = 2 {druk}.

Dit zou je voor al je kengetallen (mem, i/o , netwerk etc) zo kunnen doen.
Bij de bepaling van waar je een load naar toe stuurt is dan het checken op waardes 2 genoeg om te bepalen welke machines niet te voorzien van nieuwe load, en zo zijn er meer mogelijkheden. Op deze wijze zou je ook voor elk (type) machine een andere instelling kunnen gebruiken.
[/Even hardop denken modus]

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op donderdag 07 maart 2002 10:52 schreef janjanjansen het volgende:
Het probleem is, dat je de "beschikbaarheid van de machine" omgekeerd evenredig aan de belasting moet zien uit te drukken.

Dus een 'waarde van 100' -> niet beschikbaar. Etc.

Echter, kan de software die dit interpreteerd alleen maar overweg met enkele getallen (per machine dus een getal van 0-100 ...)

Per machine mag je dus in principe een willekeurig script neerzetten dat die waarde genereert, maar er moet wel een waarde tussen 0 - 100 uitkomen.
Een machine met een hoge load zal daar dan 100 hebben (dus niet meegenomen worden in de pooling), ondanks dat ie niet zo heeel zwaar belast wordt. Sterker nog een machine met "belasting" (50 dan dus) zal ook al nauwelijks meegenomen worden.

Met als gruwelijk gevolg dat de (stel er is er een die dus 0 rapporteerd) er een zeer zwaar belast wordt de komende minuut.

Acties:
  • 0 Henk 'm!

Verwijderd

In dat geval is mijn verhaal dus niet bruikbaar. Maar het blijft vaag om een waarde uit te rekenen daar deze voor meerdere uitleg vatbaar is. 100 kan 30+30+40 zijn en ook 98+1+1.

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op donderdag 07 maart 2002 11:24 schreef janjanjansen het volgende:
100 kan 30+30+40 zijn en ook 98+1+1.
Maar dat geeft niet...

In beide gevallen mag de server niet gebruikt worden.

Vervolgens is het aan de beheerder om dmv een login (oid) te checken wat er precies aan de hand is.
Dat getal is er puur voor de loadbalancer om te laten zien hoe "beschikbaar" een machine is.

Acties:
  • 0 Henk 'm!

Verwijderd

Ehm.. scratch this als het nergens op slaat, maareh..

ik zie nergens de 'netwerk-load' staan? Stel dat ik van die server aan het FTP-leechen ben en daarbij de gehele netwerkverbinding volblaat. Dan gebruik ik mogelijkerwijs niet zoveel CPU en Mem etc, maar toch is die server 'bezet'.

?

Acties:
  • 0 Henk 'm!

  • Femme
  • Registratie: Juni 1999
  • Laatst online: 23:06

Femme

Hardwareconnaisseur

Official Jony Ive fan

Het lijkt mij het makkelijkste om uit te gaan van CPU gebruik en het geheugengebruik en de load pas mee te nemen zodra bepaalde waarden worden overschreden. Zolang de load lager is dan 2* Aantal CPU's maakt dat cijfertje weinig uit, loadpieken moeten daarentegen wel voorkomen worden. Voor het geheugengebruik geldt dat de server niet mag dreigen te swappen.

Je zou dat kunnen oplossen door een index cijfer te berekenen op basis van de gemiddelde CPU belasting van de laatste X minuten. Als het geheugen/swap gebruik, de load, netwerktraffic en schijfactiviteit niet in een gezonde verhouding staan met het CPU gebruik zouden er extra punten bij de index opgeteld moeten worden.

In 'top' zie ik de system CPU states, is dat ook I/O enzo?

Acties:
  • 0 Henk 'm!

  • odysseus
  • Registratie: Augustus 2000
  • Laatst online: 18-09 21:59

odysseus

Debian GNU/Linux Sid

Op donderdag 07 maart 2002 20:02 schreef Femme het volgende:
Het lijkt mij het makkelijkste om uit te gaan van CPU gebruik en het geheugengebruik en de load pas mee te nemen zodra bepaalde waarden worden overschreden.
En wat als je een enkel programma hebt dat draait maar dat wel je schijf volledig belast? Je CPU-load hoeft voor het kopieren tussen twee schijven echt niet hoog te zijn, maar zo'n pc moet toch een hoog indexcijfer krijgen.
Zolang de load lager is dan 2* Aantal CPU's maakt dat cijfertje weinig uit, loadpieken moeten daarentegen wel voorkomen worden. Voor het geheugengebruik geldt dat de server niet mag dreigen te swappen.

Je zou dat kunnen oplossen door een index cijfer te berekenen op basis van de gemiddelde CPU belasting van de laatste X minuten. Als het geheugen/swap gebruik, de load, netwerktraffic en schijfactiviteit niet in een gezonde verhouding staan met het CPU gebruik zouden er extra punten bij de index opgeteld moeten worden.

In 'top' zie ik de system CPU states, is dat ook I/O enzo?
Bij mijn weten niet, het geeft alleen aan hoe je CPU gebruikt wordt. Anders zou 0.0% idle (door DPC) ook wel wat vervelend worden :) .

Leven is het meervoud van lef | In order to make an apple pie from scratch, you must first create the universe.


Acties:
  • 0 Henk 'm!

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 22-09 16:13

Kees

Serveradmin / BOFH / DoC
Topicstarter
Grote kick ;)

Ik heb het script nu in vrijwel definitieve vorm klaar en zal het met jullie delen ;)
het is een .php script geworden, zodat hij makkelijk is op te vragen en er geen enge dingen gedaan hoeven te worden: http://www.tweakers.net/load.php is de urrel (poept weinig meer uit dan een getalletje die de load aangeeft), de source:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<?
    /*********************************************************************/
    /** Parsefuncties                                                   **/
    /*********************************************************************/

    /** Functie df                                                      **/
    /** Input: $device = te onderzoeken schijf                          **/
    /** Output: array met [0] = totaal [1] = vrij [2]= gebruikt         **/
    function df($device) {
        exec("df --block-size=1 $device | /usr/bin/tr -s ' '", $results);
        $res = explode(" ", $results[1]);
        $return = array($res[1], $res[2], $res[3]);
        return $return;
    }

    /** Function uptime                                                 **/
    /** Input: geen                                                     **/
    /** Output: load*100 op het moment (eerste (5secs) getal)           **/
    function uptime() {
        exec("/usr/bin/cat /proc/loadavg", $results);
        $res = explode(" ", $results[0]);
        $return = $res[0] * 100;
        return $return;
    }

    /** Function mem                                                    **/
    /** Input: geen                                                     **/
    /** Output: array met [0] totaal mem [1] used [2] swap [3] swap use **/
    function mem() {
        exec("/bin/free | /usr/bin/tr -s ' '", $results);
        $res = explode(" ", $results[1]);
        $res2 = explode(" ", $results[3]);
        $return = array($res[1], $res[2], $res2[1], $res2[2]);
        return $return;
    }

    /** Function procs                                                  **/
    /** Input: geen                                                     **/
    /** output: aantal procs in de server                               **/
    function procs() {
        exec("/usr/bin/cat /proc/cpuinfo | /usr/bin/grep 'bogomips'", $results);
        $result = count($results);
        return $result;
    }

    /*********************************************************************/
    /** Gegevens verzamelen                                             **/
    /*********************************************************************/
    $df = df("/dev/hda1");
    $uptime = uptime();
    $mem = mem();
    $procs = procs();
    $nfs = fopen("/mnt/web/load_check", "r");

    /*********************************************************************/
    /** Berekening                                                      **/
    /** 100 = don't use, 0 = idle
    /*********************************************************************/

    /** $load = cijfer dat naar de loadbalancer gestuurt wordt          **/
    /** de uptime_load berekening:                                      **/
    /** 20 * load over 5 mins, waarbij er minimaal 5 naar de lb         **/
    /** gestuurt wordt. (als de load over 5 mins dus onder de .25 zit)  **/
    /** als de swap en geheugen vol zitten of als de schijf bijna vol   **/
    /** zit of als de NFS dood is krijgt de LB een waarde van 100       **/
    /** (dont use) terug (of zelfs een timeout zodat de server dood is) **/
    $load = ((int) (0.2*$uptime) / $procs);
    if ($load < 5)
        $load = 5;
    if ((($mem[0] - $mem[1]) == 0) && ($mem[2] - $mem[3] == 0)) {
        $load = 100;
    }
    else if ($df[1] < 500000) {
        $load = 100;
    }
    if ($nfs == FALSE) {
        $load = 100;
    }
    if (isset($full)) {
        echo "<pre>";
        echo "mem: $mem[0] $mem[1] $mem[2] $mem[3]\n";
        echo "disk: $df[0] $df[1] $df[2]\n";
        echo "uptime: $uptime\n";
        echo "load: $load";
        echo "</pre>";
    }
    else
        echo $load;
?>


Opmerkingen/vragen etc zijn uiteraard welkom ;)

[ Voor 0% gewijzigd door Kees op 02-08-2002 17:37 . Reden: blah ]

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Acties:
  • 0 Henk 'm!

  • pinball
  • Registratie: Oktober 1999
  • Niet online

pinball

Electric Monk

Erm.. mooi script!

Alleen voor loadbalancing lijkt het me wat te beperkt. Uiteindelijk kijk je alleen maar naar de CPU, en zelfs als die op 100% staat krijg je 20 terug, wat op een schaal van 0-100 in de categorie "prima bruikbaar" zit.

Lijkt meer op een failoverscript, omdat het wel rekening houdt met "extreme" situaties. Maar toch ook weer niet, omdat er dan ook een test voor de service (waar het eik om gaat) zou moeten verrichten. (bv connectie naar poort 25 / 80 , en de juiste berichten terugkrijgen).

Rest dus de vraag: "Waar ga je dit voor gebruiken?"

Whenever you find that you are on the side of the majority, it is time to reform.


Acties:
  • 0 Henk 'm!

  • Femme
  • Registratie: Juni 1999
  • Laatst online: 23:06

Femme

Hardwareconnaisseur

Official Jony Ive fan

en zelfs als die op 100% staat krijg je 20 terug
Een load van 1 is geen 100% processorbelasting.

Op zich jammer dat de CPU belasting niet wordt meegewogen. Met een load van 1 kun je op een single proc machine de CPU volledig belasten als er maar één proces actief is die alle CPU tijd gebruikt (een koe bijvoorbeeld).

Acties:
  • 0 Henk 'm!

  • HGM
  • Registratie: April 2000
  • Niet online

HGM

Kees schreef op 02 augustus 2002 @ 17:36:
Opmerkingen/vragen etc zijn uiteraard welkom ;)
Er staat: "als de swap en geheugen vol zitten", is het dan al niet telaat om dan pas de load zo drastisch naar 100 te zetten?
Wanneer het nodig is dat er aanzienlijk wat swapruimte nodig is, zal de server niet echt optimaal benut kunnen worden IMO :?

Acties:
  • 0 Henk 'm!

  • Jelmer
  • Registratie: Maart 2000
  • Laatst online: 20:25
Kees, misschien om het even wat duidelijker te maken voor anderen, vervang 'aantal procs' door 'aantal CPU's' Ik zelf dacht van huh hoe krijgt ie het voorelkaar om ahv de bogomips het aantal draaiende processen op te vragen :? ;)

Verder lijkt me dat het script wel goed in elkaar zit en denk dat het pas over een tijdje evt wat verder ge-fine-tuned kan worden per server.

Acties:
  • 0 Henk 'm!

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
ff een hele simpele vraag, waar de output niet in xml?
PHP:
1
2
3
4
5
&lt;load&gt;
  &lt;main&gt;5&lt;/main&gt;
  &lt;cpu&gt;67&lt;/cpu&gt;
  &lt;memory&gt;78&lt;/memory&gt;
&lt;/load&gt;


Waar main het getalletje is wat er nu uitgespuugt wordt.

Acties:
  • 0 Henk 'm!

  • _Gekkie_
  • Registratie: Oktober 2000
  • Laatst online: 24-06 20:21

_Gekkie_

And the cow said: Helloooooow?

Ik zal dan wel een n00b zijn op het gebied van je script, maar ik kan het redelijk volgen totdat je de
PHP:
1
2
3
...
if (isset($full)) {
...

erin knalt... Waar komt die $full vandaan?

Gekkie is a proud member of TheBenny!


Acties:
  • 0 Henk 'm!

  • HGM
  • Registratie: April 2000
  • Niet online

HGM

_Gekkie_ schreef op 03 augustus 2002 @ 12:12:
erin knalt... Waar komt die $full vandaan?
Dan krijg je de volledige output:
http://www.tweakers.net/load.php?full=1

Acties:
  • 0 Henk 'm!

  • _Gekkie_
  • Registratie: Oktober 2000
  • Laatst online: 24-06 20:21

_Gekkie_

And the cow said: Helloooooow?

Bingo, dus die $full is een $_POST GET value?

edit: my bad :)

Gekkie is a proud member of TheBenny!


Acties:
  • 0 Henk 'm!

  • Bart Coppens
  • Registratie: April 2000
  • Laatst online: 25-11-2021
_Gekkie_ schreef op 03 augustus 2002 @ 12:16:
[...]
Bingo, dus die $full is een $_POST value?
Ik denk eerder dat het een $_GET/$HTTP_GET_VARS zal zijn, omdat je anders een formuliertje nodig zou hebben.

Copyright Auteur heeft Tweakers.net BV geen exclusieve licentie op bovenstaande post verleend. Voorafgaande en uitdrukkelijke schriftelijke toestemming van Tweakers.net BV is dus niet noodzakelijk voor het vermenigvuldigen van bovenstaande post


Acties:
  • 0 Henk 'm!

  • PcDealer
  • Registratie: Maart 2000
  • Laatst online: 03:32

PcDealer

HP ftw \o/

Load geeft constant aan "5"?

LinkedIn WoT Cash Converter


Acties:
  • 0 Henk 'm!

  • pinball
  • Registratie: Oktober 1999
  • Niet online

pinball

Electric Monk

PcDealer schreef op 04 augustus 2002 @ 08:07:
Load geeft constant aan "5"?
Kees schreef op 02 augustus 2002 @ 17:36:
PHP:
1
2
    if ($load &lt; 5)
        $load = 5;
Idd :)

Whenever you find that you are on the side of the majority, it is time to reform.


Acties:
  • 0 Henk 'm!

  • PcDealer
  • Registratie: Maart 2000
  • Laatst online: 03:32

PcDealer

HP ftw \o/

Ik snap. Die extra koe komt eraan :)

LinkedIn WoT Cash Converter


Acties:
  • 0 Henk 'm!

  • Femme
  • Registratie: Juni 1999
  • Laatst online: 23:06

Femme

Hardwareconnaisseur

Official Jony Ive fan

Als je kijkt naar de verdeling van de pageviews dan blijkt het script al aardig accuraat te werken. Zie de grafieken op http://www.tweakers.net/etc.dsp?Action=Stats (voor ~10:00 klopte de weergegeven verdeling van de pageviews niet).

Achelois = dual Athlon MP 1,4GHz, Argus = Tbird 1,2GHz, Atlas = dual PIII-1000, Iris = Tbird 1,33GHz.

Acties:
  • 0 Henk 'm!

  • twixx
  • Registratie: April 2000
  • Niet online
Femme schreef op 04 augustus 2002 @ 10:33:
Zie de grafieken op http://www.tweakers.net/etc.dsp?Action=Stats (voor ~10:00 klopte de weergegeven verdeling van de pageviews niet).
Kijk-kijk :) Zoiets heb ik ergens eerder gezien.

Afbeeldingslocatie: http://stats.trueserver.nl/gfx/total-day.png

Ziet er overzichtelijk uit. Kunnen de balkjes nog wat dunner of het lijntje wat 'smoother'?

9x Canadian Solar + Enphase IQ7+ 3,4 kWp ZZW 20º
4x Yingli + Enphase IQ7 1 kWp ZZW 25º
4x Yingli + Enphase IQ7 1 kWp ZZW 90º


Acties:
  • 0 Henk 'm!

  • eth0
  • Registratie: Mei 2002
  • Laatst online: 15-09 22:14
dus dit is via de loadbalancer

http://www.tweakers.net/load.php?full=1

En deze zijn buiten de loadbalncer om. Deze worden dus daad werkelijk gebruikt door de loadbalancer. maar dan zonder full natuurlijk.

http://atlas.tweakers.net/load.php?full=1
http://atlas.tweakers.net/load.php?full=1
http://iris.tweakers.net/load.php?full=1
http://argus.tweakers.net/load.php?full=1

En deze worden dan op de loadbalancer binnengehaald en aan de hand van de waar die hij terug krijgt wordt de weight aangepast in linux-virtual server. Hebben jullie dat zelf gemaakt of is dat kant en klaar van brainforce, het zit namelijk niet standaard in lvs.

En er wordt dus gebruikt gemaakt van de direct routing methode want anders waren de 4 frontend niet van buitaf te bereiken.

En hebben jullie ook een failover loadbalancer?? want dat is nu de single point of failure. Zo nee dat is niet moeilijk te implementeren heb zelf al enkele opstellingen zo gebouwd. Maar dan zonder kant en klare oplossingen zoals de brainforce, gewoon zelf gebouwd met lvs. 8) De brainforce maakt trouwens ook gebruik van lvs alleen zit daar een GUI op en je moet er zwaar voor betalen.

[ Voor 0% gewijzigd door eth0 op 04-08-2002 14:24 . Reden: typo ]


Acties:
  • 0 Henk 'm!

  • xces
  • Registratie: Juli 2001
  • Laatst online: 22-09 14:21

xces

To got or not to got..

offtopic:
kicken man

Acties:
  • 0 Henk 'm!

Verwijderd

odysseus schreef op 07 maart 2002 @ 20:21:
[...]

En wat als je een enkel programma hebt dat draait maar dat wel je schijf volledig belast? Je CPU-load hoeft voor het kopieren tussen twee schijven echt niet hoog te zijn, maar zo'n pc moet toch een hoog indexcijfer krijgen.[...]
iostat geeft dat allemaal weer

Acties:
  • 0 Henk 'm!

  • Femme
  • Registratie: Juni 1999
  • Laatst online: 23:06

Femme

Hardwareconnaisseur

Official Jony Ive fan

twixx schreef op 04 augustus 2002 @ 13:22:
[...]

Kijk-kijk :) Zoiets heb ik ergens eerder gezien.

afbeelding

Ziet er overzichtelijk uit. Kunnen de balkjes nog wat dunner of het lijntje wat 'smoother'?
Ik log per 10 minuten en dan krijg je staafjes van 3 pixels breed. Het grafiekje van drie dagen ziet er wel netter uit:

<Table><tr><Td bgcolor='white'>Afbeeldingslocatie: http://www.tweakers.net/ext/statschart.dsp?Action=Pageview&Dagen=3</td></tr></table>

Acties:
  • 0 Henk 'm!

  • twixx
  • Registratie: April 2000
  • Niet online
Dies inderdaad netter (mooier vindt ik). De verschillen zie je nog steeds. Die Atlas moet wel een flink bakkie zijn; die neemt een flinke hap voor z'n rekening. 'k ben erg trots op t.net dat ze nu achter de slb hangen. Nu nog een permanente oplossing voor de DB server (de error handling is al netjes).

9x Canadian Solar + Enphase IQ7+ 3,4 kWp ZZW 20º
4x Yingli + Enphase IQ7 1 kWp ZZW 25º
4x Yingli + Enphase IQ7 1 kWp ZZW 90º


Acties:
  • 0 Henk 'm!

  • Floor-is
  • Registratie: Maart 2000
  • Laatst online: 11-09 12:57

Floor-is

5.2

twixx schreef op 04 augustus 2002 @ 23:09:
Dies inderdaad netter (mooier vindt ik). De verschillen zie je nog steeds. Die Atlas moet wel een flink bakkie zijn; die neemt een flinke hap voor z'n rekening. 'k ben erg trots op t.net dat ze nu achter de slb hangen. Nu nog een permanente oplossing voor de DB server (de error handling is al netjes).
Atlas is een Dual P3, met 3 SCSI disks en 2GB geheugen uit mijn hoofd.
Hij/zij kan in zijn/haar eentje zo ongeveer heel de FP trekken, de rest is dus ofwel failover ofwel nodig voor andere crap :P

Bericht hierboven


Acties:
  • 0 Henk 'm!

  • twixx
  • Registratie: April 2000
  • Niet online
Ik weet nog wel een mooie net.app die erg geschikt is voor NFS filesharing (ook voor andere dingen overigens >:)). Kan Atlas fijn keihard paginaatjes stampen.

9x Canadian Solar + Enphase IQ7+ 3,4 kWp ZZW 20º
4x Yingli + Enphase IQ7 1 kWp ZZW 25º
4x Yingli + Enphase IQ7 1 kWp ZZW 90º


Acties:
  • 0 Henk 'm!

Verwijderd

twixx schreef op 05 augustus 2002 @ 10:23:
Ik weet nog wel een mooie net.app die erg geschikt is voor NFS filesharing (ook voor andere dingen overigens >:)). Kan Atlas fijn keihard paginaatjes stampen.
ook voor andere dingen?

kan die ook SMB dan :?

Acties:
  • 0 Henk 'm!

Verwijderd

eth0 schreef op 04 augustus 2002 @ 14:10:
dus dit is via de loadbalancer

http://www.tweakers.net/load.php?full=1

En deze zijn buiten de loadbalncer om. Deze worden dus daad werkelijk gebruikt door de loadbalancer. maar dan zonder full natuurlijk.

http://atlas.tweakers.net/load.php?full=1
http://atlas.tweakers.net/load.php?full=1
http://iris.tweakers.net/load.php?full=1
http://argus.tweakers.net/load.php?full=1

En deze worden dan op de loadbalancer binnengehaald en aan de hand van de waar die hij terug krijgt wordt de weight aangepast in linux-virtual server. Hebben jullie dat zelf gemaakt of is dat kant en klaar van brainforce, het zit namelijk niet standaard in lvs.

En er wordt dus gebruikt gemaakt van de direct routing methode want anders waren de 4 frontend niet van buitaf te bereiken.

En hebben jullie ook een failover loadbalancer?? want dat is nu de single point of failure. Zo nee dat is niet moeilijk te implementeren heb zelf al enkele opstellingen zo gebouwd. Maar dan zonder kant en klare oplossingen zoals de brainforce, gewoon zelf gebouwd met lvs. 8) De brainforce maakt trouwens ook gebruik van lvs alleen zit daar een GUI op en je moet er zwaar voor betalen.
mmm, hebben jullie een 2de loadbalancer? Lijkt me wel erg belangrijk want als de loadbalancer uitvalt doet waarschijnlijk niets meer het of wel? Hoe pakken jullie dat aan?

Acties:
  • 0 Henk 'm!

  • eth0
  • Registratie: Mei 2002
  • Laatst online: 15-09 22:14
Verwijderd schreef op 11 augustus 2002 @ 07:09:
[...]

mmm, hebben jullie een 2de loadbalancer? Lijkt me wel erg belangrijk want als de loadbalancer uitvalt doet waarschijnlijk niets meer het of wel? Hoe pakken jullie dat aan?
Wat ze kunnen doen in het geval als de loadbalancer uitvalt is de dns records direct naar de web-frontends laten wijzen aldan niet met round robin, tweakers.net staat in de dns van webmagix.net en met een whois zie ik datwebmagix.net van Femme is dus die kunnen ze vrij snel aanpassen. Ik zie trouwens ook met dig op tweakers.net dat de ttl op 6 uur staat het geen zou beteken dat dus maximaal 6 later alles om is, Dus maximaal is in datgeval 6 uur + laten we zeggen 1 uur voor dat er actie wordt ondernomen (dns enzo) = 7 uur dat tweakers.net onbereikbaar is.


Ps Femme hoe krijg jij die grafiekjes zo dat er meerdere servers in staat met mrtg/rdd? Kan je een stukje config posten?

[ Voor 0% gewijzigd door eth0 op 11-08-2002 08:51 . Reden: ps ]


Acties:
  • 0 Henk 'm!

  • luc
  • Registratie: Maart 2000
  • Niet online

luc

Imho neemt die tweede loadbalancer gewoon 't ip van die eerste over als die uit valt..
Kweet niet meer precies hoe dat in elkaar zat, moet je even dat artikel op de frontpage lezen, daar stond imho in hoe dit werkte.
Dit grafiekjes komen niet uit mrtg/rdd, maar uit een script van Femme zelf.
't is niet moeilijk, kwestie van simpel php+gd en wat berekeningen ;)

Acties:
  • 0 Henk 'm!

  • Eärendil
  • Registratie: Februari 2002
  • Laatst online: 21:31
ACM schreef op woensdag 22 mei 2002 - 20:40 op Tweakers.net:
Ondanks het feit dat de One4Net B-100 gebruik maakt van CompactFlash in plaats van een harde schijf en volledig gebaseerd is op robuuste IBM hardware en Linux software kan het voorkomen dat een loadbalancer uitvalt. Ook hier is bij de B-100 rekening mee gehouden. De twee loadbalancers hebben dezelfde configuratie-files aan boord en houden deze synchroon middels een null-modem kabel. Zodra één van de twee merkt dat de ander niet meer reageert worden direct alle taken naar de overgebleven balancer geschoven.

Er kan echter een vertraging van (nu nog) 30 seconden optreden als de reserve-balancer standby was op het moment dat de primaire uitviel. Dit komt omdat interne en externe IP-adressen moeten worden overgenomen, en deze door de werking van de ethernet-standaard niet van het ene op het andere moment kunnen overspringen. Zodra de uitgevallen loadbalancer weer online komt zal deze in standby modus gaan en netjes zijn broertje beginnen te monitoren, waarna het bovenstaande proces zich eventueel weer kan herhalen. Gelukkig is dit 'probleem' grotendeels opgelost in de nieuwe software; de 30 seconden is een standaard instelling die getuned kan worden, en in de nieuwe software is deze instelling standaard op 4,5 seconde gezet.

Acties:
  • 0 Henk 'm!

  • twixx
  • Registratie: April 2000
  • Niet online
Houd de SLB rekening met de ARP timeout? Door b.v. van een virtual MAC adres gebruik te maken? Of moet die ook een time-out krijgen? (< 5 min. that is)

9x Canadian Solar + Enphase IQ7+ 3,4 kWp ZZW 20º
4x Yingli + Enphase IQ7 1 kWp ZZW 25º
4x Yingli + Enphase IQ7 1 kWp ZZW 90º


Acties:
  • 0 Henk 'm!

  • eth0
  • Registratie: Mei 2002
  • Laatst online: 15-09 22:14
Ik heb al zoiets gemaakt met twee loadbalancer met [url=www/linux-vs.org]lvs[/url] en met
linux-heartbeat

Hier staat nog wat over het ip takeover verhaal:http://linux-ha.org/failover/

Acties:
  • 0 Henk 'm!

Verwijderd

eth0 schreef op 11 augustus 2002 @ 08:48:
[...]

Ps Femme hoe krijg jij die grafiekjes zo dat er meerdere servers in staat met mrtg/rdd? Kan je een stukje config posten?
Ben ik ook wel benieuwd naar :)
Pagina: 1