Opsamling af data -> grafer

pawsen
Antal: 37
Tilmeldt:
22-10-2011
User is offline
Opsamling af data -> grafer

Jeg vil gerne lave en graf over cpu-frekvensen. Hvis jeg fx. skriver et af følgende får jeg den aktuelle frekvens hvert andet sekund

watch grep \"cpu MHz\" /proc/cpuinfo
watch cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq

Men jeg vil gerne gemme det i en fil(eller database eller ?) sammen med tidspunktet, så jeg kan plottet data.

Hvordan gøres dette? Og hvilket program skal jeg bruge til at lave selve grafen med?

Mvh Paw


dudsen
Antal: 694
Tilmeldt:
10-01-2009
User is online
bash

jeg ville lave et shell script og pipe output til en fil har ikke lige tid til at crafte et fuldt script pt men et while loop burde gøre tricket.

while true; do
date ; >> /var/log/outfile
grep "cpu MHz" /proc/cpuinfo ; >> /var/log/cpufreq.out
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq; /var/log/cpufreq.out
echo "##" /var/log/cpufreq.out
sleep 2;
done;

det gennerere en textfil /var/log/cpufreq.out med

timestamp
komando outputs
##

entries.
det kan du smide igennem et regex filter og erstatte newline med ; og beholde ## som newline og wupti så har du en csv fil du kan fodre Librecalc, gnuplot eller gnumeric med.

Ovenstående er en grim hurtig løsning ville nok selv bruge lidt tid på at finjustere output, men så bevæger vi os over i programering og den slags


mrbrown79
Antal: 302
Tilmeldt:
12-01-2010
User is offline
Der er mange veje til

Der er mange veje til Rom.

Jeg ville nok smide det i et cron job.

Quick-and-dirty varianten (inkl. beregning af gns cpu load):
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq | awk 'BEGIN{sum=0;count=0}{count++;sum=sum+$1}END{print systime() " " sum/count}' > /home/mig/logfile

Du kan bruge gnuplot til at plotte grafen.


lbm
lbm's picture
Antal: 621
Tilmeldt:
14-06-2006
User is offline
Du kan fodre outputtet til

Du kan fodre outputtet til rrdtool..
Jeg gør noget lign, men jeg bruger bare cacti (overvågningsværktøj) til dette, som benytter rrdtool til at vise grafer.