jensbjens Skrevet 9. november 2011 Del Skrevet 9. november 2011 (endret) Hei, Jeg forsøker å lage et script ved hjelp av Perl som benytter seg av data i filen /proc/diskstats Jeg trenger hjelp til å finne ut hvor mange blocks som skrives hvert sekund, og gjennomsnittstiden det tar for operasjonene å fullføre på disken. Det var ikke helt lett å sette seg inn i dokumentasjonen, da den ikke var så veldig forklarende for min del Jeg forsøker meg derfor på forumet her for første gang for å se om det er noen kloke hoder som kan bistå med noe ekspertise! håper på raskt svar Endret 9. november 2011 av jensbjens Lenke til kommentar
Kiff Skrevet 9. november 2011 Del Skrevet 9. november 2011 (endret) Fant denne interpreting-proc-diskstats Field 1 -- # of reads issued Field 2 -- # of reads merged, field 6 -- # of writes merged Field 3 -- # of sectors read Field 4 -- # of milliseconds spent reading Field 5 -- # of writes completed Field 7 -- # of sectors written Field 8 -- # of milliseconds spent writing Field 9 -- # of I/Os currently in progress Field 10 -- # of milliseconds spent doing I/Os Field 11 -- weighted # of milliseconds spent doing I/Os Kanskje noe som dette vil funke cat /proc/diskstats | grep sda | awk '{ print $7 }' Du må sikkert tweake 'sda' og tallet bak $ for å få infoen du vil ha. (Er riktignok ikke i PERL, men jeg håper det hjelper ) Edit: Hvis noen er flinkere i awk enn meg går det nok fint å droppe 'grep sda' til fordel for en sjekk på $3 i awk. Endret 9. november 2011 av Kiff Lenke til kommentar
jensbjens Skrevet 9. november 2011 Forfatter Del Skrevet 9. november 2011 Jo takk for svaret, men jeg spesifiserte det kanskje noe mangelfullt. Det jeg er ute etter er ikke sektorer. Jeg vil gjerne kunne lage til en oversikt over blokker, altså hvor mange sektorer som slås sammen. (blir det ikke riktig å si det slik?). Og det jeg trenger er å få til hvor mange slike blokker som skrives i sekundet. Jeg er usikker på hvilke regnemåter jeg må bruke for å få til det som er ønskelig. Hvilke tall jeg må dele på, trekke fra osv. :/ Lenke til kommentar
fleskesvor Skrevet 10. november 2011 Del Skrevet 10. november 2011 Jeg vet ikke hvordan jeg skal tolke innholdet i /proc/diskstats, men for å hente ut dataene i perl cirka hvert sekund kan du gjøre noe sånt (justér for-løkka for flere kall): #!/usr/bin/perl -w use strict; for (1 .. 3) { my $diskstats = &get_diskstats(); sleep(1); } sub get_diskstats { local($/) = undef; # slurp open my $pipe, '-|', 'cat /proc/diskstats' or die $!; my $diskstats = <$pipe>; return $diskstats; } Jeg ville nok også supplert det med awk for å få ut de relevante dataene, men som sagt vet jeg ikke hva som er relevant. Lenke til kommentar
Kiff Skrevet 10. november 2011 Del Skrevet 10. november 2011 Jeg installerte sysstat pakken og kjørte iostat, er det noe sånt du trenger: ... Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 1.50 7.84 19.41 9336868 23117380 ... Lenke til kommentar
jensbjens Skrevet 11. november 2011 Forfatter Del Skrevet 11. november 2011 Jeg installerte sysstat pakken og kjørte iostat, er det noe sånt du trenger: Det jeg trenger er å finne ut hvor mange blocks som skrives per sekund. Kun ved å lese proc/diskstats filen. Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå