IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Commande % utilisation processeur


Sujet :

Shell et commandes GNU

  1. #1
    Membre averti Avatar de Neolex
    Homme Profil pro
    Recherche emploi Securité informatique
    Inscrit en
    Avril 2011
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Recherche emploi Securité informatique

    Informations forums :
    Inscription : Avril 2011
    Messages : 243
    Points : 333
    Points
    333
    Par défaut Commande % utilisation processeur
    Bonsoir à tous ,
    J'utilise une commande que j'ai écrite avec awk pour calculer le % d'utilisation de mon processeur .
    Je pensais avoir bon mais je viens de voir que je monte à 136% parfois...

    Je voudrais donc votre avis sur la commande et si possible m'aider à la corriger en m'expliquant pourquoi celle ci ne fonctionne pas , merci

    la voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ps -e -o "%cpu" | awk 'BEGIN{SUM=0}{SUM+=$1}END{print SUM}'
    merci d'avance pour votre aide!

  2. #2
    Membre régulier
    Homme Profil pro
    Expert Middleware
    Inscrit en
    Septembre 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Expert Middleware

    Informations forums :
    Inscription : Septembre 2006
    Messages : 75
    Points : 100
    Points
    100
    Par défaut
    C'est très bête surement comme question mais y'a une raison particulière pour laquelle tu calcules ce % et tu ne l'affiches pas avec une autre commande ?
    Quand on est mort, on ne sait pas qu’on est mort, c’est pour les autres que c’est difficile… Quand on est con, c’est pareil.

  3. #3
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 459
    Points
    13 459
    Par défaut
    Bonjour

    La commande awk ne contient pas de faute.
    Peux-tu poster la sortie de ps -e -o "%cpu" dans des balises "code" ?

    calculer le % d'utilisation de mon processeur
    Combien de coeurs a ton processeur ?
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  4. #4
    Membre averti Avatar de Neolex
    Homme Profil pro
    Recherche emploi Securité informatique
    Inscrit en
    Avril 2011
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Recherche emploi Securité informatique

    Informations forums :
    Inscription : Avril 2011
    Messages : 243
    Points : 333
    Points
    333
    Par défaut
    Je le mets dans un script qui dois affichier seulement le % d'utilisation du processeur pour l'afficher dans une barre i3.

    Mon processeur à 4 core , voici le resultat de la commane ps -e -o "%cpu" , là mon script affiche un pourcentage de 65.7%

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    neolex@neolex-pc> ~$ps -e -o "%cpu"
    %CPU
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.4
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.4
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     4.7
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
    31.0
     0.3
     3.4
     0.9
     0.0
     0.0
     1.7
     0.1
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     5.3
     0.9
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.2
     0.7
     0.0
     0.1
     0.0
    11.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.0
     0.9
     0.0
     0.0
     3.7
     0.0
     0.0
     0.0
    merci

  5. #5
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 286
    Points : 12 743
    Points
    12 743
    Par défaut
    Bonjour,

    Qui dit 4 cores, dit possibilité de 4 process qui tourne en parallèle, donc on peut atteindre 400%
    Cordialement.

  6. #6
    Membre averti Avatar de Neolex
    Homme Profil pro
    Recherche emploi Securité informatique
    Inscrit en
    Avril 2011
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Recherche emploi Securité informatique

    Informations forums :
    Inscription : Avril 2011
    Messages : 243
    Points : 333
    Points
    333
    Par défaut
    D'accord, je pensais que c’était un % par rapport au total du processeur...
    Il me suffit donc de diviser la valeur par 4 non ?

    merci !

  7. #7
    Membre régulier
    Homme Profil pro
    Expert Middleware
    Inscrit en
    Septembre 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Expert Middleware

    Informations forums :
    Inscription : Septembre 2006
    Messages : 75
    Points : 100
    Points
    100
    Par défaut
    J'insiste mais pourquoi faire le calcul toi même ... Pourquoi par exemple ne pas utiliser la commande sar qui calcul elle même le % de cpu utilisé ?
    Quand on est mort, on ne sait pas qu’on est mort, c’est pour les autres que c’est difficile… Quand on est con, c’est pareil.

  8. #8
    Membre averti Avatar de Neolex
    Homme Profil pro
    Recherche emploi Securité informatique
    Inscrit en
    Avril 2011
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Recherche emploi Securité informatique

    Informations forums :
    Inscription : Avril 2011
    Messages : 243
    Points : 333
    Points
    333
    Par défaut
    je n'ai pas de commande sar

  9. #9
    Membre régulier
    Homme Profil pro
    Expert Middleware
    Inscrit en
    Septembre 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Expert Middleware

    Informations forums :
    Inscription : Septembre 2006
    Messages : 75
    Points : 100
    Points
    100
    Par défaut
    Sinon avec un top ca marche aussi
    Quand on est mort, on ne sait pas qu’on est mort, c’est pour les autres que c’est difficile… Quand on est con, c’est pareil.

  10. #10
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    vmstat affiche la charge CPU sur 100% quels que soient le nombre de threads et de coeurs.
    ɹǝsn *sıɹɐlos*

  11. #11
    Membre averti Avatar de Neolex
    Homme Profil pro
    Recherche emploi Securité informatique
    Inscrit en
    Avril 2011
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Recherche emploi Securité informatique

    Informations forums :
    Inscription : Avril 2011
    Messages : 243
    Points : 333
    Points
    333
    Par défaut
    comme je l'ai dis cette commande me permet d'afficher mon % d'utilisation du CPU dans ma barre i3.

    top et vmstat m'obligeraient a récupérer la valeur avec des grep/sed/awk par exemple ..

    Ma commande me va tout aussi bien

  12. #12
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Citation Envoyé par Neolex Voir le message
    comme je l'ai dis cette commande me permet d'afficher mon % d'utilisation du CPU dans ma barre i3.
    Pas vraiment. Elle loupe la plupart de la charge des processus peu actifs et peut ne pas comptabiliser de la charge CPU des processus transitoires et prises par des interruptions noyaux que top et vmstat prennent en compte, elle est beaucoup plus coûteuse que vmstat, et de toute façon, le pourcentage que tu calcules n'a pas de sens (voir plus loin).

    top et vmstat m'obligeraient a récupérer la valeur avec des grep/sed/awk par exemple ..
    Tu fais déjà un awk très lourd, il pourrait y avoir des centaines ou des milliers de valeurs à additionner alors qu'avec top et vmstat, il n'y a pas besoin de calcul, tout au plus à ajouter quelques valeurs.

    Ma commande me va tout aussi bien
    Elle est pourtant absurde, car elle ajoute des valeurs qui n'ont pas le même référentiel. D'après la documentation Linux, le %CPU de ps est calculé par rapport à la durée d'exécution totale du processus. Donc, si tu as un processus qui a chargé un core à 100% pendant une heure puis ne fait plus rien depuis, il est rapporté par ps à 50% de cpu. Si tu as un deuxième processus qui a chargé deux cores pendant 1/2h puis ne fait plus rien depuis, il est rapporté à 100% de cpu, si tu as un troisième processus qui a démarré il y a une demi-heure et a chargé quatre coeurs à 100% pendant un quart d'heure, il est à 200%. Ton programme va donc afficher une charge de 350% alors que la CPU ne fait plus rien depuis un quart d'heure...
    ɹǝsn *sıɹɐlos*

  13. #13
    Membre averti Avatar de Neolex
    Homme Profil pro
    Recherche emploi Securité informatique
    Inscrit en
    Avril 2011
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Recherche emploi Securité informatique

    Informations forums :
    Inscription : Avril 2011
    Messages : 243
    Points : 333
    Points
    333
    Par défaut
    D'accord merci beaucoup de tes explications jlliagre ,
    Je n'avais pas conscience de tout ce que tu as dis ....
    Je vais donc essayer de recuperer la valeur de vmstat et je vous tiens au courant !

    Edit :
    est-ce que cette commande est correcte ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vmstat | tr -s ' ' | tail -n 1 | cut -d' ' -f14
    Je ne suis pas sûr que ce soit bon , ça m'affiche presque tout le temps 17 et quelques fois 4 ... quelle est exactement la valeur a recuperer dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
     0  0      0 7762276 251304 3798884    0    0    12    38  202  219 17  4 77  1  0

    je pense que mon probleme vient du nombre d'espace qui doit ne pas etre tout le temps le même ...
    merci

  14. #14
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Il ne faut pas prendre la première ligne de valeurs car il s'agit de la charge moyenne depuis le boot, c'est pour ça que tu as à peu près toujours le même résultat.

    Sinon, tr, tail et cut peuvent être remplacés par awk et il faut prendre les colonnes 13 (système) et 14 (user), pas seulement la 14.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vmstat 1 2 | awk 'NR==4 {print $13+$14 "%"}'
    ɹǝsn *sıɹɐlos*

  15. #15
    Membre averti Avatar de Neolex
    Homme Profil pro
    Recherche emploi Securité informatique
    Inscrit en
    Avril 2011
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Recherche emploi Securité informatique

    Informations forums :
    Inscription : Avril 2011
    Messages : 243
    Points : 333
    Points
    333
    Par défaut
    Merci pour ta réponse ,
    Et je m'excuse j'aurais du lire le man de vmstat avant de poser la question .

    Merci pour la commande , j'avais oublié le NR , j'ai été voir .

    Bonne soirée et Bon Week end à tous !
    Merci encore !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quelle commande utiliser pour écrire des vecteurs en colonne ?
    Par minimel dans le forum Mathématiques - Sciences
    Réponses: 2
    Dernier message: 18/05/2007, 18h24
  2. Problème d'utilisation processeur
    Par Debhian dans le forum SDL
    Réponses: 3
    Dernier message: 20/04/2007, 16h53
  3. CellRenderer utilisation processeur
    Par theyankee76 dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 05/12/2006, 13h41
  4. Commandes pré-processeur
    Par nicolas66 dans le forum C++
    Réponses: 1
    Dernier message: 19/03/2006, 13h55
  5. OpenGLUT et utilisation processeur
    Par rulianf dans le forum GLUT
    Réponses: 1
    Dernier message: 21/11/2005, 13h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo