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 :

afficher le % d'utilisation cpu par un processus avec un script


Sujet :

Shell et commandes GNU

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2010
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 75
    Points : 42
    Points
    42
    Par défaut afficher le % d'utilisation cpu par un processus avec un script
    Bonjour a tous,

    Je souhaite faire un script qui:

    Via un ssh de la forme root@serveur .. affiche l'utilisation en pourcentage du cpu par un process par exemple java.

    j'ai tenté de le faire avec un par exemple mais via un ssh ça ne fonctionne pas.

    j'ai également cherché du coté perl afin de savoir s'il existe un module ou autre. Mais j'avoue que je tourne un peu en rond.

    Je vous remercie pour toutes suggestions.

  2. #2
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 123
    Points
    28 123
    Par défaut
    Bonjour,

    la commande que tu cherches est :
    Sinon, pour pousser le bouchon : qu'entends-tu par utilisation CPU ? Un processus qui utilise 100% d'un coeur pendant un seul quantum de temps de mettons 10ms, si tu regardes sur 1 seconde, il devrait avoir quelle utilisation ?
    Et il faut voir que tous les OS ne calculent pas sur la meme fenetre, et que certains OS dans certains cas ne prennent en compte que l'utilisation du 1er thread, et pas des autres (donc si le 1er thread est un thread de monitoring et que ce sont les autres qui travaillent, ton application utilise 0% de CPU).
    Mais globalement, la commande ci-dessus fait ce que tu veux

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2010
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 75
    Points : 42
    Points
    42
    Par défaut super
    Merci beaucoup c'est parfait

    juste une petite chose sans vouloir abuser de votre temps.

    lorsque je fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ssh utilisateur@serveur ps -C java -o %cpu
    Comment pourrais-je faire pour ne pas avoir les messages d'informations de connexion ssh.
    Car même si je renvoie ça dans une variable à l'exécution dans un scrip il m'affiche quand même à chaque fois les messages type d'ouverture de ssh.

    bref de toute façon le plus important est résolu.

    je vous remercie grandement !

  4. #4
    Membre du Club
    Inscrit en
    Septembre 2010
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 75
    Points : 42
    Points
    42
    Par défaut problème avec cette commande
    Citation Envoyé par gangsoleil Voir le message
    Bonjour,

    la commande que tu cherches est :
    Sinon, pour pousser le bouchon : qu'entends-tu par utilisation CPU ? Un processus qui utilise 100% d'un coeur pendant un seul quantum de temps de mettons 10ms, si tu regardes sur 1 seconde, il devrait avoir quelle utilisation ?
    Et il faut voir que tous les OS ne calculent pas sur la meme fenetre, et que certains OS dans certains cas ne prennent en compte que l'utilisation du 1er thread, et pas des autres (donc si le 1er thread est un thread de monitoring et que ce sont les autres qui travaillent, ton application utilise 0% de CPU).
    Mais globalement, la commande ci-dessus fait ce que tu veux

    bonjour,

    Malheureusement fauts espoirs
    la commande renvoie toujours la même valeur, l'utilisation processeur ne varie pas.
    j'ai fait la comparaison avec un top et sur plusieurs process différents les valeur ne varie jamais !

  5. #5
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 123
    Points
    28 123
    Par défaut
    Citation Envoyé par tintin3158 Voir le message
    Malheureusement fauts espoirs
    la commande renvoie toujours la même valeur, l'utilisation processeur ne varie pas.
    j'ai fait la comparaison avec un top et sur plusieurs process différents les valeur ne varie jamais !
    Je n'ai pas tout compris

    Qu'est-ce qui ne change jamais ? La valeur dans top ? dans ps ?

    Comme je te le disais, un pourcentage d'utilisation, c'est compliqué à concevoir (une fois que tu sais ce que tu veux, c'est "facile" a calculer). Dans ps, le %cpu affiche la chose suivante :
    cpu utilization of the process in "##.#" format. Currently, it is the CPU time used divided by the time the process has been running (cputime/realtime ratio), expressed as a percentage. It will not add up to 100% unless you are lucky. (alias pcpu).
    J'ai l'impression que ce n'est pas ce que tu veux, mais je ne sais pas ce que tu veux : l'utilisation "moyenne" des 5 dernieres secondes ? minutes ? autre ?

    top calcule le pourcentage du CPU comme le temps passé par chaque processus sur le processeur entre deux affichages de top, par rapport au temps total de CPU disponible. Là encore, c'est une vision du pourcentage CPU, mais pas forcement ce que tu cherches.
    Attention, la vision du CPU "a la mode solaris" est une vision "par coeur". Donc un processus qui occuperait 25% sur une machine a 4 processeur, c'est un processus qui occupe en fait un CPU a 100%.

  6. #6
    Membre du Club
    Inscrit en
    Septembre 2010
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 75
    Points : 42
    Points
    42
    Par défaut re
    Citation Envoyé par gangsoleil Voir le message
    Je n'ai pas tout compris

    Qu'est-ce qui ne change jamais ? La valeur dans top ? dans ps ?

    Comme je te le disais, un pourcentage d'utilisation, c'est compliqué à concevoir (une fois que tu sais ce que tu veux, c'est "facile" a calculer). Dans ps, le %cpu affiche la chose suivante :


    J'ai l'impression que ce n'est pas ce que tu veux, mais je ne sais pas ce que tu veux : l'utilisation "moyenne" des 5 dernieres secondes ? minutes ? autre ?

    top calcule le pourcentage du CPU comme le temps passé par chaque processus sur le processeur entre deux affichages de top, par rapport au temps total de CPU disponible. Là encore, c'est une vision du pourcentage CPU, mais pas forcement ce que tu cherches.
    Attention, la vision du CPU "a la mode solaris" est une vision "par coeur". Donc un processus qui occuperait 25% sur une machine a 4 processeur, c'est un processus qui occupe en fait un CPU a 100%.
    bonsoir,

    Navré, je vais tenter d'être plus clair.
    En fait lorsque je fait un "top du process java ou firefox ", il m'affiche une fluctuation de l'utilisation du en pourcentage par exemple 10 %

    lorsque je fait la commande PS il ne m'affiche pas la même consommaction en % du processeur il reste par exemple à 7 %.
    Ce que je veux dire, si je lance plusieurs fois de suite la commande le résultat affiché ne varie pas. il reste constant même si le programme travaille.

    je souhaiterai juste avoir la même prévision (fluctuation) qu'avec la commande top. Mais je constate que ça n'est pas le cas.
    Je ne vois pas vraiment d'où ça peut venir.

    en te remerciant

  7. #7
    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
    ps -o %cpu affiche la consommation CPU moyenne depuis le lancement du processus, normal qu'il ne change pas si le processus est lançé depuis longtemps.

    top affiche la consommation instantanée, ou plus précisément la consommation moyenne sur des intervalles successifs d'une seconde.

    Voici la commande que tu cherches:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ssh user@server top -n 5 -b | awk '$12 == "java" {print $9}'
    Le fait d'utiliser ssh ne devrait pas ajouter de message de type "ouverture de ssh". Quels sont ils exactement ?

  8. #8
    Membre du Club
    Inscrit en
    Septembre 2010
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 75
    Points : 42
    Points
    42
    Par défaut re
    merci la commande retourne le type de valeur que je cherche.

    concernant la connexion ssh. avec cette commande je n'ai effectivement aucune info sur la connexion ssh. c'est qui est très bien.

    Avec la commande précedente j'étais obligé de tout renvoyer dans une variable (information de connexion + Résultat de la commande) et de filtrer via une expression régulière.

    Donc un grand merci.

    En plus ça me fait travailler mon langage script (et perl) que je découvre grâce au tuto de ce site.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/12/2010, 14h04
  2. Récupérer utilisation cpu d'un processus
    Par athomas dans le forum C++
    Réponses: 1
    Dernier message: 03/08/2010, 17h32
  3. Pourcentage d'utilisation CPU d'un processus
    Par Antho42 dans le forum C#
    Réponses: 3
    Dernier message: 30/03/2009, 14h39
  4. la mémoire utilisée par un processus
    Par LN(a) dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 22/04/2006, 14h28
  5. Pourcentage CPU utilisé par un processus
    Par yakotey dans le forum Threads & Processus
    Réponses: 6
    Dernier message: 04/10/2005, 13h11

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