/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
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

Hej,

Kasper Johansen <kaspernj@gmail.com> writes:
> Jeg vil på en hjemmeside gerne give mine brugere mulighed for, at
> aflæse serverens belastning.

Det nemmeste er måske blot at installere munin - det er ganske nemt at
gå til.

http://munin.projects.linpro.no/

Du kan bl.a. se eksempler her:

http://munin.ping.uio.no/ping.uio.no/rossum.ping.uio.no.html


/Claus A

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.


Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste