Gå til innhold

Hvordan lage en "Average Server Load" ?


Anbefalte innlegg

Videoannonse
Annonse
Noen som vet hvordan jeg kan lage en ting lik denne ?

5893833[/snapback]

 

hmm.. gjorde noe slikt en gang for mange år siden.

 

da php enda var et nytt språk ;)

 

Hvis det er en linux maskin og du har mulighet til å kjøre komandoer fra PHP så har du muligheten til å kjøre "w d"

 

(d kan være hva som helst igrunn.. )

 

du vil da få tilbake noe slik:

21:28:03 up 167 days, 9:34, 13 users, load average: 0.01, 0.05, 0.03

USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT

 

De tre siste tallene bak "load average" er for de siste 1 , 5 og 15 minuttene..

 

å få dette over til noe grafisk skal vel ikke være noe stort problem.

 

Det finnes kanskje en enklere måte å gjør dette på ?

 

EDIT: kanskje det er mulig å lese av /proc/loadavg via php'n også ? den inneholder de samme tallene.

Endret av trondes
Lenke til kommentar
Nå er jeg ikke helt sikker her, men jeg mener de tallene der er ant. prosesser i gjennomsnitt som til enhver tid venter på å bli kjørt. Altså, ikke det trådstarter er ute etter som er load i %.

5895737[/snapback]

 

Hmm.. du har rett der, jeg har alltid tenkt slik: (rett meg hvis jeg tenker feil.. noe som skjer alt for mye.. )

 

hvis du får 0.50 så vil det vel si at den jobber med 50% .. får du tall over 1.00 så jobber den med 100%

 

Noen som har litt bedre peiling på linux kan vel hjelpe oss her kanksje ?

Lenke til kommentar

Ikke helt korrekt. Enkleste er nok å installere et dedikert program for det. uptime, w mv. gir en hentydning til cpujobber i køen. Den kan komme langt opp.

 

Det som er mulig er å kjøre f.eks vmstat som en jobb en gang si hvert 5 minutt og lagre verdien i ID (Idle) altså 100 - verdien i ID = forbruk i prosent.

Lenke til kommentar

Jeg har funnet et script nå, men får det ikke til å funke. Her er scriptet:

<?

<h2>Server load</h2>
<table width=100% border=1 cellspacing=0 cellpadding=10><tr><td align=center>
<table class=main border=0 width=402><tr><td style='padding: 0px; background-image: url(pic/loadbarbg.gif); background-repeat: repeat-x'>
<? $percent = min(100, round(exec('ps ax | grep -c apache') / 256 * 100));
if ($percent <= 70) $pic = "loadbargreen.gif";
elseif ($percent <= 90) $pic = "loadbaryellow.gif";
else $pic = "loadbarred.gif";
$width = $percent * 4;
print("<img height=15 width=$width src=\"pic/$pic\" alt='$percent%'>"); ?>
</td></tr></table>
</td></tr></table>

?>

 

Når jeg bruker den får jeg denne feil meldingen:

Parse error: parse error, unexpected '<' in /usr/local/www/data/index.php on line 279

Lenke til kommentar

HAdde nå vært fint å vite hvor linje 279 er da.. men et par ting her. (

Hva gjør den første "<?" og den siste "?>" ser ingen grunn til at de skal være her?

 

En annen diskusjoner er om du skal bruke <?php i stede for <? . ( se https://www.diskusjon.no/index.php?showtopic=552956 )

 

 

Jeg har funnet et script nå, men får det ikke til å funke. Her er scriptet:
<?

<h2>Server load</h2>
<table width=100% border=1 cellspacing=0 cellpadding=10><tr><td align=center>
<table class=main border=0 width=402><tr><td style='padding: 0px; background-image: url(pic/loadbarbg.gif); background-repeat: repeat-x'>
<? $percent = min(100, round(exec('ps ax | grep -c apache') / 256 * 100));
if ($percent <= 70) $pic = "loadbargreen.gif";
elseif ($percent <= 90) $pic = "loadbaryellow.gif";
else $pic = "loadbarred.gif";
$width = $percent * 4;
print("<img height=15 width=$width src=\"pic/$pic\" alt='$percent%'>"); ?>
</td></tr></table>
</td></tr></table>

?>

 

 

 

 

Når jeg bruker den får jeg denne feil meldingen:

Parse error: parse error, unexpected '<' in /usr/local/www/data/index.php on line 279

5896785[/snapback]

 

En annen ting, "ps ax" gir deg bare informasjon om prossesene, tty, minneforbruk og diverse slik andre nyttige ting.. når du bruker "grep -c apache" så får du bare tilbake hvor mange prosseser som kjører programmet apache (på de linux maskinen jeg har vært innom). Den sier ikke noe om hvor mye prosessoren jobber.

Endret av trondes
Lenke til kommentar

Slik som dette ser det ut nå:

<?php

<h2>Server load</h2>
<table width=100% border=1 cellspacing=0 cellpadding=10><tr><td align=center>
<table class=main border=0 width=402><tr><td style='padding: 0px; background-image: url(pic/loadbarbg.gif); background-repeat: repeat-x'>
<? $percent = min(100, round(exec('ps ax | grep -c httpd') / 256 * 100));
if ($percent <= 70) $pic = "loadbargreen.gif";
elseif ($percent <= 90) $pic = "loadbaryellow.gif";
else $pic = "loadbarred.gif";
$width = $percent * 4;
print("<img height=15 width=$width src=\"pic/$pic\" alt='$percent%'>"); ?>
</td></tr></table>
</td></tr></table>

?>

Linje 279 er <h2>Server Load</h2>.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...