|  | 		    
					
        
         
          
         
	
          | |  | Korrekt aflæsning og sammenlægning af Fra : Kasper Johansen
 | 
 Dato :  28-12-05 08:30
 | 
 |  | Hej gruppe.
 
 
 Jeg vil på en hjemmeside gerne give mine brugere mulighed for, at aflæse
 serverens belastning.
 
 Jeg ved at jeg kan se alle processerne med kommandoen:
 
 "ps -aux"
 
 
 Men hvis jeg bare lægge dem sammen, vil jeg få lagt en masse childs oven
 i hinanden, hvilket ikke er meningen.
 
 Hvordan får jeg lagt tallene ordentligt sammen, så det passer
 ordentligt, og jeg f.eks. kan vise at måske 30% af CPU'en og 40% af
 rammen er i brug?
 
 
 --
 Med venlig hilsen
 Kasper Johansen
 
 
 |  |  | 
  Klaus Alexander Seis~ (28-12-2005) 
 
	
          | |  | Kommentar Fra : Klaus Alexander Seis~
 | 
 Dato :  28-12-05 08:53
 | 
 |  | 
 
            Kasper Johansen skrev:
 > Jeg vil på en hjemmeside gerne give mine brugere mulighed for, 
 > at aflæse serverens belastning.
 >
 >    [···]
 >
 > Hvordan får jeg lagt tallene ordentligt sammen, så det passer 
 > ordentligt, og jeg f.eks. kan vise at måske 30% af CPU'en og 
 > 40% af rammen er i brug?
 Hvis der er tale om Linux, kan man bruger "cat /proc/loadavg" for at se 
 antallet af kørende processer inden for de seneste 1, 5 og 15 minutter, 
 og "cat /proc/meminfo" for at se oplysninger om hukommelsen.  Se proc(5),
 dvs. "man 5 proc", for en forklaring.
 Ellers kan man bruge fx uptime(1) og free(1) til at aflæse hhv. loadavg 
 og hukommelsesforbrug.
 Mvh, 
 -- 
 Klaus Alexander Seistrup
 Copenhagen, Denmark
http://seistrup.dk/ |  |  | 
  Kasper Johansen (28-12-2005) 
 
	
          | |  | Kommentar Fra : Kasper Johansen
 | 
 Dato :  28-12-05 10:43
 | 
 |  | Klaus Alexander Seistrup skrev
 > Hvis der er tale om Linux, kan man bruger "cat /proc/loadavg" for at se
 > antallet af kørende processer inden for de seneste 1, 5 og 15 minutter,
 > og "cat /proc/meminfo" for at se oplysninger om hukommelsen.  Se proc(5),
 > dvs. "man 5 proc", for en forklaring.
 >
 > Ellers kan man bruge fx uptime(1) og free(1) til at aflæse hhv. loadavg
 > og hukommelsesforbrug.
 
 Jeg takker, du fik sat mig på sporet af det jeg ønskede.
 
 Lige for god ordens skyld, vil jeg lige remse op hvad jeg kom frem til,
 så andre læsere at tråden også får noget ud af det.
 
 
 Til at aflæse ram brugte jeg:
 cat /proc/meminfo
 
 
 Til at aflæse CPU brute jeg:
 cat /proc/loadavg
 
 Eller:
 uptime
 
 
 De to funktioner til at aflæse CPU siger ikke så meget for de fleste
 (med mindre de læser manualen). "loadavg" returnerer 3 tal. Det første
 er gennemsnitsload det sidste minut, det næste er gennemsnitsload de
 sidste 5 min. og det tredje tal er gennemsnitsload de sidste 15 min.
 
 
 Jeg brugte disse scripts i PHP sammen med regulære udtryk, til at aflæse
 værdierne, og bruge dem i mine scripts.
 
 
 Disse remser jeg også lige:
 <PHP>
 <?
 exec("cat /proc/meminfo", $meminfo);
 preg_match("/([0-9]{1,9}) kB/", $meminfo[3], $match_total);
 preg_match("/([0-9]{1,9}) kB/", $meminfo[4], $match_used);
 
 $total = $match_total[1];
 $free = $total - $match_used[1];
 $used_perc = ($free / $total) * 100;
 $rammb = $match_total[1] / 1024;
 
 exec("cat /proc/loadavg", $cpuload);
 preg_match("/([0-1]{1}\.[0-9]{0,2})/", $cpuload[0], $cpuload_match);
 $cpu_load_percent = $cpuload_match[1] * 100;
 ?>
 </PHP>
 
 
 --
 Med venlig hilsen
 Kasper Johansen
 
 
 |  |  | 
   Klaus Alexander Seis~ (28-12-2005) 
 
	
          | |  | Kommentar Fra : Klaus Alexander Seis~
 | 
 Dato :  28-12-05 11:26
 | 
 |  | 
 
            Kasper Johansen skrev:
 >    exec("cat /proc/meminfo", $meminfo);
 >    exec("cat /proc/loadavg", $cpuload);
 Afhængigt af temperament, kan man osse blot åbne de pågældende pseudo-
 filer og læse de linjer man har brug for.
 Mvh, 
 -- 
 Klaus Alexander Seistrup
 Copenhagen, Denmark
http://streetkids.dk/ |  |  | 
    Kasper Johansen (30-12-2005) 
 
	
          | |  | Kommentar Fra : Kasper Johansen
 | 
 Dato :  30-12-05 18:40
 | 
 |  | Klaus Alexander Seistrup skrev:
 >>   exec("cat /proc/loadavg", $cpuload);
 
 Når man ser de 3 loadresultater. Skal de så ganges med hundrede? Eller
 hvordan skal man forstå dem?
 
 Jeg har bare lidt svært ved at acceptere hvor lidt min CPU egentlig er
 belastet ifg. hvordan jeg aflæser den (regner med at det bare er load i
 %, uden at det skal ganges).
 
 --
 Med venlig hilsen
 Kasper Johansen
 
 
 |  |  | 
     Klaus Alexander Seis~ (30-12-2005) 
 
	
          | |  | Kommentar Fra : Klaus Alexander Seis~
 | 
 Dato :  30-12-05 21:29
 | 
 |  | 
 
            Kasper Johansen skrev:
 >>>   exec("cat /proc/loadavg", $cpuload);
 > 
 > Når man ser de 3 loadresultater. Skal de så ganges med hundrede? 
 > Eller hvordan skal man forstå dem?
 Se proc(5) - dvs. "man 5 proc" - under /proc/loadavg.
 Mvh, 
 -- 
 Klaus Alexander Seistrup
 Copenhagen, Denmark
http://seistrup.dk/ |  |  | 
     Ukendt (01-01-2006) 
 
	
          | |  | Kommentar Fra : Ukendt
 | 
 Dato :  01-01-06 13:56
 | 
 |  | Kasper Johansen wrote:
 >
 > Klaus Alexander Seistrup skrev:
 > >>   exec("cat /proc/loadavg", $cpuload);
 >
 > Når man ser de 3 loadresultater. Skal de så ganges med hundrede?
 
 Man kan da godt gange talene med hundrede hvis man
 har lyst til det, men det skulle da kun være for at
 have heltal at regne på.
 
 > Eller hvordan skal man forstå dem?
 
 For det første er talene en sum af CPU belastningen
 og diskbelastningen. For CPU delen kan talene forstås
 som antal CPUer, der er arbejde til.
 
 Det vil sige, at hvis ikke diskene arbejder og hele
 bidraget kommer fra CPU belastning, så vil et load
 på 2.5 betyde, at der er arbejde nok til to og en
 halv CPU. (Groft sagt).
 
 Hvis du vil have nogle tommelfingerregler for hvordan
 talene skal forstås, så er det her nok ikke helt hen
 i vejret:
 0.00-0.90 Lav belastning, programmerne kan slet ikke
 udnytte alle resourcerne.
 0.90-1.50 Maskinen er belastet, men på ingen måde
 overbelastet.
 1.50-3.00 Maskinen er hårdt belastet, og nogle ting
 vil nok opleve dårlig performance.
 over 3    Maskinen er så hårdt belastet, at man ikke
 har lyst til at bruge den til nogen form
 for interaktive anvendelser. Enten bør man
 stoppe nogle programmer, eller også kan man
 bare lade den passe sig selv indtil den er
 færdig med hvad den nu har gang i.
 
 Men et enkelt tal kan naturligvis aldrig fortælle alt
 relevant om systemets belastning og performance.
 Selvom et load på over tre for det meste indikerer at
 maskinen har for meget at lave, så kan der sagtens
 eksistere situationer, hvor det ikke er noget problem.
 
 På den anden side kan der også være situationer, hvor
 et load på 1.00 indikerer, at der er noget, der ikke
 virker som det skal.
 
 Et par brugbare anvendelser af load average er f.eks.
 hvis man har en række ens maskiner, og gerne vil vide
 hvilken der under den nuværende belastning hurtigst
 kan forventes at løse en given opgave.
 
 Og hvis man har nogle servere man skal holde øje med,
 så kan en pludselig stigning i load average indikere,
 at der er noget galt. Mens et load der konstant ligger
 højere en antallet af CPUer i maskinen, indikerer, at
 den nok er underdimensioneret.
 
 Hvis det helt specifikt er CPU belastningen man vil
 vide noget om, så kig på outputtet fra top. Det
 fortæller, hvor stor en del af tiden hver CPU arbejder.
 
 Hvis CPU belastningen er lav, men load average er højt,
 så er der enten hårdt arbejde på diskene, eller et
 problem med at komme i kontakt med dem. (Går en NFS
 server ned kan man være ganske sikker på, at load
 average flyver i vejret på samtlige klienter).
 
 --
 Kasper Dupont
 #define _(_)"d.%.4s%."_"2s" /* This is my new email address */
 char*_="@2kaspner"_()"%03"_("4s%.")"t\n";printf(_+11,_+6,_,6,_+2,_+7,_+6);
 
 
 |  |  | 
  Claus Alboege (28-12-2005) 
 
	
          | |  | Kommentar Fra : Claus Alboege
 | 
 Dato :  28-12-05 10:12
 | 
 |  |  |  |  | 
  Peter Kiil (28-12-2005) 
 
	
          | |  | Kommentar Fra : Peter Kiil
 | 
 Dato :  28-12-05 14:39
 | 
 |  | 
 
            Kasper Johansen - kaspernj@gmail.com on 28/12/05 8:29 wrote:
 > Hej gruppe.
 > 
 > 
 > Jeg vil på en hjemmeside gerne give mine brugere mulighed for, at aflæse
 > serverens belastning.
 > 
 > Jeg ved at jeg kan se alle processerne med kommandoen:
 > 
 > "ps -aux"
 > 
 > 
 > Men hvis jeg bare lægge dem sammen, vil jeg få lagt en masse childs oven
 > i hinanden, hvilket ikke er meningen.
 > 
 > Hvordan får jeg lagt tallene ordentligt sammen, så det passer
 > ordentligt, og jeg f.eks. kan vise at måske 30% af CPU'en og 40% af
 > rammen er i brug?
 > 
 Burg evt. http://phpsysinfo.sourceforge.net Giver et ret detaljeret overblik, og kan sikkert rettes til så den viser det
 du har brug for.
http://phpsysinfo.sourceforge.net/phpsysinfo-dev/?template=classic -- 
 /peter 
 The best things in life are postage paid, batteries included,
 guaranteed forever and tax-free.
            
             |  |  | 
 |  |