Toon posts:

Loggen bandbreedte / cpu load in linux (resolutie -1s)

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

Verwijderd

Topicstarter
Om enkele metingen uit te voeren in Linux mbt bandbreedte en cpu-load maakt ik gebruik van sysstat. Het geteste programma heeft echter transfers van slechts enkele 100 kB's, en cpu pieken van ongeveer een halve seconde, waardoor sysstat niet echt voldoet. De kleinste periode dat kan gebruikt worden bij sysstat is nl 1 seconde, wat in dit geval niet volstaat.

Dus mijn vraag: kent iemand een ander, goed programma om deze twee gegevens te loggen? Een periode van ca. 1/5 sec zou moeten volstaan.
(Heb eveneens atsar geprobeerd, maar dit programma kent hetzelfde probleem)

  • froggie
  • Registratie: November 2001
  • Laatst online: 20-11-2024

froggie

Kwaaak

SNMP i.c.m bv MRTG?

[ Voor 48% gewijzigd door froggie op 24-03-2005 10:01 ]


  • Lancer
  • Registratie: Januari 2002
  • Laatst online: 13-02 10:53

Lancer

What the......

Kun je niet beter meten met een "steady stream" van pakketten? (Gebruik b.v. iperf om te testen; de site van iperf lijkt nu even down te zijn; google op iperf geeft meteen het juiste resultaat)
In iperf kan je de tcp/udp window grootte etc allemaal prima controleren.

Mijn gevoel zegt ook dat een hoge resolutiemeting het testresultaat wel eens significant zou kunnen beinvloeden. (Het systeem is dan niet "idle" meer)

Je kunt niet in een systeem meten zonder het systeem te beinvloeden.... (gevolg van de Heisenberg onzekerheidsrelatie)


  • Paul
  • Registratie: September 2000
  • Laatst online: 22:09
Is dat een standaard antwoord van je of zo? Het laat in ieder geval blijken dat je de topicstart totaal niet hebt gelzen. De minimale resolutie van MRTG is namelijk 5 minuten, ofwel minstens 60x te langzaam voor wat de topicstarter wil.

Ik denk inderdaad ook dat een hogere resolutie je testresultaten gaat beinvloeden, maar als je dat weet kun je er rekening mee houden. Ik ken echter ook geen programma's die zo vaak kunnen meten helaas :)

"Your life is yours alone. Rise up and live it." - Richard Rahl
Rhàshan - Aditu Sunlock


  • hesselim
  • Registratie: December 1999
  • Laatst online: 27-08-2024

hesselim

it wasn't me

Voor de load zou je een scriptje kunnen schrijven.

Door middel van het commando "top -d ss.tt" kan je de load per tenth-s of a second meten

citaat man top:
-d : Delay time interval as: -d ss.tt (seconds.tenths)
Specifies the delay between screen updates, and overrides the cor-
responding value in one's personal configuration file or the
startup default. Later this can be changed with the 'd' or 's'
interactive commands.

in jou geval dus:
code:
1
top -d 0.2


Edit
Je specificeerd niet precies welke informatie je nodig hebt, maar de volgende command sequence filterd de benodigde informatie uit top

code:
1
top -b -d 0.2 |awk '/average/ { print $0 }'


je zou ook de laatste velden eruit kunnen filteren die puur de load weergeven:

code:
1
top -b -d 0.2 |awk '/average/ { print $12 $13 $14 }'


De uitvoer is: min load, max load, average load.

Mocht je de uitvoer willen bewaren voor een langere periode dan moet je de uitvoer doorsturen naar een file:

code:
1
top -b -d 0.2 |awk '/average/ { print $12 $13 $14 }' >> measure.load


Het probleem is nu dat je wel weet wat de load is, maar je weet niet wanneer je het gemeten hebt. Mocht je dit willen weten, dan kan je de uitvoer van "date" gebruiken en aan de file toevoegen. Nu krijg je wel een script of je moet de commando's dmv ';' scheiden:

code:
1
date > measure.load;top -b -d 0.2 -n 5|awk '/average/ { print $12 $13 $14 }' >> measure.load


uitvoer:
[marc@prittstift marc]$ date > measure.load;top -b -d 1.0 -n 5| awk '/average/ { print $12 $13 $14 }' >> measure.load
[marc@prittstift marc]$ cat measure.load
Thu Mar 24 14:11:57 CET 2005
0.17,0.30,0.42
0.17,0.30,0.42
0.16,0.29,0.41
0.16,0.29,0.41
0.16,0.29,0.41

Opmerking: je moet bij top nu het aantal iteraties opgeven (de optie -n 5) omdat er anders niets in de file measure.load komt te staan!!! Op deze manier kan je gecontroleer een van te voren bepaalde tijd en tijdsduur de load meten.

awk is niet een erg duur programma als we het over performance spreken. Als je de filters klein houd is de load laag. Misschien moet je ff meten hoeveel load awk zelf gebruikt bij een kleine filter.

TIP: de unix manual is erg goed, gedetailleerd, duidelijk en makkelijk te gebruiken. Dit soort zaken kun je vinden door b.v. "man -k load" en "man -k filter" te zoeken.

[ Voor 91% gewijzigd door hesselim op 24-03-2005 14:20 . Reden: aanvulling ]

System Specs


  • hesselim
  • Registratie: December 1999
  • Laatst online: 27-08-2024

hesselim

it wasn't me

Er is nog een methode die veel minder handelingen vergt en waarschijnlijk minder load kost.

[marc@prittstift proc]$ cat loadavg
0.29 0.33 0.33 11/107 32379

of terwijl: cat /proc/loadavg

dit zou je weer in een scripje kunnen zetten of via een cron job kunnen laten lopen en de uitvoer in een file stoppen.

In /proc/net staat ook alle informatie over je netwerk devices, hier kan je met filteren ook het een en ander uithalen om jou informatie te verkrijgen.

Ik zou zeggen: have fun :9

( welkom in de unix scripting wereld :7 )

System Specs

Pagina: 1