Script / programme pour analyser %CPU

Script / programme pour analyser %CPU - Logiciels - Linux et OS Alternatifs

Marsh Posté le 28-08-2007 à 11:38:35    

bonjour à tous,
 
je fais en ce moment pas mal de tests de perf sur ma machine. L'idée, juste pour info, et de trouvé le meilleur oc avec mon proc actuel pour le décodage de la HD dans de bonne conditions. Mon Pc est basé sur un pentium M sur CM P4P800. Pour cela je recherche donc un bon moyen de pouvoir analyser l'occupation CPU durant le diffusions de vidéo  HD. Evidemment il y a la commande 'top' mais c'est pas du tout satisfaisant. J'aimerai faire un truc du genre lancer l'outil d'analyse CPU, lancer la séquence vidéo et regarder le %CPU sur toute la durée de la séquence. L'idéal est de récupérer un graph mais si déjà je pouvais avoir juste un fichier text avec par exemple le % toutes les seconde ou demi-secondes ça serait le bonheur !
 
Une idée ? Merci de votre aide...
 
'Z

Reply

Marsh Posté le 28-08-2007 à 11:38:35   

Reply

Marsh Posté le 28-08-2007 à 12:39:23    

Je crois que le bureau XFCE a un utilitaire qui permet de suivre la conso du CPU (sur le bureau même).
 
Les spécilaistes confirmeront (ou infirmeront).


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
Reply

Marsh Posté le 28-08-2007 à 12:44:26    

Tu peux jeter un oeil du côté de:
- gkrellm
- conky

 

qui proposent des "plugins" d'analyse cpu avec graphes et tout. Par contre, tu ne pourras pas récupèrer la sortie de ces graphes dans un fichier.

 

Tu peux peut-être essayer de regarder du côté des fichiers du répertoire /proc/acpi/cpufreq/
Tu devrais y trouver normalement un fichier te donnant des informations sur la fréquence utilisée etc ...


Message édité par wedgeant le 28-08-2007 à 12:44:37

---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
Reply

Marsh Posté le 28-08-2007 à 13:11:11    

Si tu souhaites pouvoir logger et obtenir des graphes divers et variés, tu peux utiliser rrdtool, c'est fait pour ca. Par contre ce n'est pas forcément très intuitif à prendre en main.
Mais il doit être possible de trouver des srcipts tout faits qui l'utilisent et te génèrent de beaux graphes :)


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
Reply

Marsh Posté le 28-08-2007 à 13:18:51    

+1 rrdtool, tu scriptes sur l'occupation CPU et tu peux mettre en liaison avec le cpufreq utilisé en plus.


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 28-08-2007 à 13:23:14    

e_esprit a écrit :

Si tu souhaites pouvoir logger et obtenir des graphes divers et variés, tu peux utiliser rrdtool, c'est fait pour ca. Par contre ce n'est pas forcément très intuitif à prendre en main.
Mais il doit être possible de trouver des srcipts tout faits qui l'utilisent et te génèrent de beaux graphes :)


 
sur ipcop y a des scripts qui permettent de générer un graphe sur le cpu, je sais pas ce que tu veux exactement mais ca peut te donner une piste (le script s'appelle makegraphs de souvenir)


---------------
-_- http://www.scienceshopping.com -_-
Reply

Marsh Posté le 28-08-2007 à 15:01:22    

Je vais regarder tout celà, merci beaucoup !
Je cherche effectivement un moyen de récupérer un graph d'occupation CPU généré durant la lecture d'une vidéo en HD, assez consommatrice de temps CPU...
un truc dans ce genre là : http://static.pcinpact.com/images/bd/news/25010.jpg
 
Encore merci à tous, je vous tiendrai au courant du résultat (c'est la moindre des choses ;) )

Reply

Marsh Posté le 28-08-2007 à 15:14:26    

le script dont je parlais sur ipcop:
 

sub updatecpugraph {
        $period    = $_[0];
        $period1   = $_[0];
 
        if( $period eq 'year' )
        {
                $period1 = 'year_rrd';
        }
 
        RRDs::graph ("$graphs/cpu-$period.png",
                "--start", "-1$period", "-aPNG", "-z",
                "--alt-y-grid", "-w 531", "-h 100", "-l 0", "-u 100", "-r",
                "--color", "SHADEA#$borderColor",  #EAE9EE
                "--color", "SHADEB#$borderColor",
                "--color", "BACK#$backgroundColor",
                "-t Utilisation CPU par $tr{$period1}",
                "DEF:user=$rrdlog/cpu.rrd:user:AVERAGE",
                "DEF:system=$rrdlog/cpu.rrd:system:AVERAGE",
                "DEF:idle=$rrdlog/cpu.rrd:idle:AVERAGE",
                "CDEF:total=user,system,idle,+,+",
                "CDEF:userpct=100,user,total,/,*",
                "CDEF:systempct=100,system,total,/,*",
                "CDEF:idlepct=100,idle,total,/,*",
                "AREA:userpct#0000FF:CPU utilisateur",
                "GPRINT:userpct:MAX:Maximum\\:%3.2lf%%",
                "GPRINT:userpct:AVERAGE:Moyenne\\:%3.2lf%%",
                "GPRINT:userpct:LAST:Actuel\\:%3.2lf%%\\j",
                "STACK:systempct#FF0000:CPU système    ",
                "GPRINT:systempct:MAX:Maximum\\:%3.2lf%%",
                "GPRINT:systempct:AVERAGE:Moyenne\\:%3.2lf%%",
                "GPRINT:systempct:LAST:Actuel\\:%3.2lf%%\\j",
                "STACK:idlepct#00FF00:CPU inactif    ",
                "GPRINT:idlepct:MAX:Maximum\\:%3.2lf%%",
                "GPRINT:idlepct:AVERAGE:Moyenne\\:%3.2lf%%",
                "GPRINT:idlepct:LAST:Actuel\\:%3.2lf%%\\j" );
        $ERROR = RRDs::error;
        print "Error in RRD::graph for cpu: $ERROR\n" if $ERROR;
}
 
sub updatecpudata {
        if ( ! -e "$rrdlog/cpu.rrd" ) {
                RRDs::create ("$rrdlog/cpu.rrd", "--step=300",
                        "DS:user:COUNTER:300:0:500000000",
                        "DS:system:COUNTER:300:0:500000000",
                        "DS:idle:COUNTER:300:0:500000000",
                        "RRA:AVERAGE:0.5:1:576",
                        "RRA:AVERAGE:0.5:6:672",
                        "RRA:AVERAGE:0.5:24:732",
                        "RRA:AVERAGE:0.5:144:1460" );
                $ERROR = RRDs::error;
                print "Error in RRD::create for cpu: $ERROR\n" if $ERROR;
        }
 
        my ($cpu, $user, $nice, $system, $idle);
 
        open STAT, "/proc/stat";
        while(<STAT> ) {
                chomp;
                /^cpu\s/ or next;
                ($cpu, $user, $nice, $system, $idle) = split /\s+/;
                last;
        }
        close STAT;
        $user += $nice;
 
        RRDs::update ("$rrdlog/cpu.rrd",
                "-t", "user:system:idle",
                "N:$user:$system:$idle" );
        $ERROR = RRDs::error;
        print "Error in RRD::update for cpu: $ERROR\n" if $ERROR;
 
}
 


 
et ca te donne un truc genre :
 
http://ipcop.org/index.php?module= [...] creenshots


---------------
-_- http://www.scienceshopping.com -_-
Reply

Marsh Posté le 28-08-2007 à 15:16:48    

_p1c0_ a écrit :

le script dont je parlais sur ipcop:


  [:cerveau delight]


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
Reply

Marsh Posté le 28-08-2007 à 15:19:03    


il te plait pas ?  [:cerveau pingouino]


---------------
-_- http://www.scienceshopping.com -_-
Reply

Marsh Posté le 28-08-2007 à 15:19:03   

Reply

Marsh Posté le 28-08-2007 à 15:19:47    

_p1c0_ a écrit :


il te plait pas ?  [:cerveau pingouino]


Si !!
C'est du perl [:cerveau atsuko]


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
Reply

Marsh Posté le 28-08-2007 à 15:23:42    

wedgeant a écrit :


Si !!
C'est du perl [:cerveau atsuko]


 
ouais enfin le graphe est pas ce qu'il y a de plus beau hein... le perl ca permet aussi de faire des trucs moches!  [:cerveau d]  
 
enfin là, y a les bases déja, encore que c'est sur un kernel 2.4 et que certaines choses ont changé dans le /proc depuis...  [:cerveau spamafote]


---------------
-_- http://www.scienceshopping.com -_-
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed