Pages : 1
#1 Le 27/12/2007, à 15:35
- Sysko le prospecteur
Connaitre charge cpu
bien le bonjour
j'écris actuellement un script qui m'affiche les différentes statistiqes du système et j'aimerais savoir
qu'elle commande peut me donner la consonsomation du (des cpu ) , je parle bien de commande je ne veux pas un utilitaire ^^
et je voudrais que celle s'affiche du genre
echo 'le(s) cpu(s) sont utilité à $charge_cpu %'
je sais qu'elle se trouve dans top et qu'avec ps aux on peut l'obtenir en additionant tout les champs %cpu mais je ne vois pas comment faire
d'avance merci
Projet tatoeba : projet collaboratif visant à créer un corpus de phrases d'exemples traduites dans le plus de langues possibles
Hors ligne
#2 Le 27/12/2007, à 16:05
- rhodry
Re : Connaitre charge cpu
Bonjour.
Dans une console:
top
Les premières lignes te donnent la charge globale. les ligne suivantes le détail par processus.
A+
Edit: Ne tiens pas compte de ce que je viens d'écrire. j'ai bien peur d'avoir mal lu ton message. désolé:(
Dernière modification par rhodry (Le 27/12/2007, à 16:07)
Hors ligne
#3 Le 27/12/2007, à 16:45
- rhodry
Re : Connaitre charge cpu
Peut être la commande
sar -U
Il existe aussi une commande vsar mais je ne trouve pas de doc dessus.
A+
Hors ligne
#4 Le 27/12/2007, à 16:55
- iuchiban
Re : Connaitre charge cpu
Et avec http://doc.ubuntu-fr.org/conky???
Tu veux faire quoi avec ton script??
C'est depuis que Chuck Norris a laissé la vie sauve à un manchot que l'on dit que Linux est libre.
Chuck Norris n'a pas besoin d'éditer son premier message pour ajouter [Résolu]. Chuck Norris est toujours [Résolu], quoi qu'il arrive.
Hors ligne
#5 Le 27/12/2007, à 17:32
- pascal50
Re : Connaitre charge cpu
Peut être à partir de :
top -n1 | grep 'Cpu(s)'
Le complément de % idle doit correspondre à ce que tu cherches ?
Dernière modification par pascal50 (Le 27/12/2007, à 17:33)
Hors ligne
#6 Le 27/12/2007, à 17:51
- Sysko le prospecteur
Re : Connaitre charge cpu
en fait c bon j'ai utilisé
vmstat | grep [0-9] | awk '{print \" le(s) cpu sont utilises a \" 100 - $15 \"%\"}
et voili merci quand même
Projet tatoeba : projet collaboratif visant à créer un corpus de phrases d'exemples traduites dans le plus de langues possibles
Hors ligne
#7 Le 27/12/2007, à 17:59
- pascal50
Re : Connaitre charge cpu
j'en était là :
top -n1 | grep 'Cpu(s)'| awk '{print $5;}' | sed -e 's/id,//g'
ce qui donne : 81.7%
Mais je n'arrive pas à enlever le "%" avec sed, même en préfixant avec un "\" dans le motif. Pourtant il n'est pas un méta caractère semble t il ?
On pourrait enchainer un calcul en float avec bc
Hors ligne
#8 Le 28/12/2007, à 20:22
- Sysko le prospecteur
Re : Connaitre charge cpu
hum c'est étrange mais ta commande pascal me donne toujours une consomation du cpu de 50.9 % , ce qui correspond à la première valeur que prend top avant de se stabiliser vers des valeurs plus normal ( de l'ordre de 90 % de non utilisé )
Projet tatoeba : projet collaboratif visant à créer un corpus de phrases d'exemples traduites dans le plus de langues possibles
Hors ligne
#9 Le 28/12/2007, à 21:21
- pascal50
Re : Connaitre charge cpu
Donc elle consomme 40% du cpu ?
Je n'ai pas ce comportement (sous gentoo). Je n'ai pas de différence notable entre le idle% fourni par "top" et par
"top -n1 | grep 'Cpu(s)'| awk '{print $5;}' | sed -e 's/id,//g'"
Mais le "top", c'est pas terrible car cette commande produit des caractères supplémentaires que l'on ne voit pas à la console. Je m'en suis aperçu en redirigeant la sortie de top -n1 dans un fichier texte et en l'éditant avec kwrite. Ce qui doit me "pourrir" le filtre pour éliminer le %.
j'en suis là (ça devient une usine à gaz, mais j'ai du temps de libre !):
A=$(top -n1 | grep 'Cpu(s)'| awk '{print $5;}' | sed -e 's/id,// ; s/%// ; s/[^[:digit:]\.]//g'); (echo "100.0 - $A" )
J'ai un doute : bash ne fait du calcul arithmétique qu'avec des entiers ?
Autre piste (?) : j'ai jeté un Å“il dans /proc/stat mais je ne sais pas interpréter.
Modif : /proc/loadavg donne les moyennes sur 1, 5 et 15 min
http://ftp.traduc.org/doc-vf/gazette-li … 115-E.html
http://linuxfr.org/forums/26/18799.html
Dernière modification par pascal50 (Le 28/12/2007, à 21:31)
Hors ligne
#10 Le 28/12/2007, à 21:48
- pascal50
Re : Connaitre charge cpu
Pour top il faut utiliser l'option -b pour eviter les caractères spécifiques à la console
J'ai trouver ce lien pour les charges :
http://www.luv.asn.au/overheads/NJG_LUV … lides.html
Dernière modification par pascal50 (Le 28/12/2007, à 21:48)
Hors ligne
#11 Le 29/12/2007, à 01:38
- pascal50
Re : Connaitre charge cpu
Voici o๠j'en suis (cela m'a permi quelques révisions !) :
echo "100.0 - $(top -b -n1 | grep 'Cpu(s)'| awk '{print $5;}' | sed -e 's/%id,//')" | bc -l
Mais tu as raison, c'est pas très fiable car j'ai un ecart de 11% sur les idles% comme le montre la commande suivante :
$ top -b -n5 | grep 'Cpu(s)'| awk '{print $5;}' | sed -e 's/%id,//'
85.6
97.0
96.0
97.0
97.0
Sur un système plus chargé l'écart doit normalement se réduire ...
Hors ligne
#12 Le 29/12/2007, à 14:01
- pascal50
Re : Connaitre charge cpu
J'ai de meilleurs résultats avec la commande sar (du paquet sysstat) :
# sar
Linux 2.6.22-gentoo-r8 (poste02) 29.12.200711:13:08 LINUX RESTART
13:20:01 CPU %user %nice %system %iowait %steal %idle
13:30:01 all 3,07 0,00 2,84 0,04 0,00 94,05
Moyenne: all 3,07 0,00 2,84 0,04 0,00 94,05
Mais il y a encore un écart de 3 ou 4 % avec la valeur stabilisée de top sur un système peu chargé.
Je me suis inspiré de ça (Plugin Nagios pour vérifier la charge CPU) pour faire cette commande :
echo "100.00 - $(sar | /usr/bin/tail -n 2 | /usr/bin/head -n 1 | /bin/sed 's/\ \ */ /g' | cut -d' ' -f8 | /bin/sed 's/,/./g')" | bc -l
Hors ligne
#13 Le 29/12/2007, à 16:42
- Sysko le prospecteur
Re : Connaitre charge cpu
^^ hé bé sa en fait des sacré commande ^^
Projet tatoeba : projet collaboratif visant à créer un corpus de phrases d'exemples traduites dans le plus de langues possibles
Hors ligne
#14 Le 29/12/2007, à 17:11
- pascal50
Re : Connaitre charge cpu
Avec ça tu as une valeur quasi instantanée :
echo "100.00 - $(sar 1 -P ALL | /usr/bin/tail -n 5| head -n1 | /bin/sed 's/\ \ */ /g' | cut -d' ' -f8 | /bin/sed 's/,/./g')" | bc -l
Si tu as plusieurs processeurs tu dois même pouvoir avoir des stats pour chacun d'eux. Et sar fait bien d'autres choses encore...(interfaces réseau, scheduler, mémoire...)
Hors ligne
#15 Le 29/12/2007, à 21:46
- Sysko le prospecteur
Re : Connaitre charge cpu
Oki oki toujours utilse à avoir ce gener de petit outils sur soi
bon après les fêtes je regarderais sa de plus près ^^
Projet tatoeba : projet collaboratif visant à créer un corpus de phrases d'exemples traduites dans le plus de langues possibles
Hors ligne
#16 Le 26/01/2019, à 09:00
- pascal18250
Re : Connaitre charge cpu
Bonjour à tous .
Sysko le prospecteur, essai ceci . c'est plus préscis a mon goût bien sur ..
htop
Hors ligne
Pages : 1