GNU/Linux >> Tutoriels Linux >  >> Linux

Détecter les processus mangeant le CPU sans :Top, Htop, Ps ?

J'ai rencontré un problème où je ne pouvais que deviner quel processus mangeait le processeur.

Mon utilisation du processeur était d'environ 80 % pour tous les cœurs de psensor.

J'ai essayé htop , top et ps -A -o pcpu,pid,cmd --sort +pcpu (le dernier que j'ai même essayé avec sudo en vain).
Tout cela montrait le pid coupable (dont j'étais au courant) en utilisant environ 7 % seulement…

Quand je SIGKILL sur ce pid, tout revient à la normale.

Pour tester, j'ai fait une boucle infinie sur le terminal while true;do echo -n;done mais que je pouvais clairement voir à htop ; donc je suppose que ce qui causait des problèmes n'était pas similaire à ça…

Alors je me demande s'il y a d'autres façons d'avoir trouvé le coupable sans avoir à deviner ?

En y repensant, je pense que j'aimerais savoir quels calculs psensor et "l'applet d'indicateur de charge du système" utilise qui a pu afficher cette valeur mais que les autres n'ont pas pu ?

PS :lien sur le temps d'attente,
lien sur la charge moyenne

Réponse acceptée :

Je ne connais pas suffisamment les détails pour donner des indications précises, mais je suppose qu'il existe deux sources de différences entre la charge réelle causée et l'utilisation CPU indiquée :

  1. Le processus peut consister en plusieurs threads et top peut ne pas les résumer. Vous pouvez voir le nombre de threads par ceci :

    ps -eo pid,nlwp,%cpu,user,args
    

    En top vous pouvez changer la gestion des threads avec H . L'utilisation du processeur de chaque thread est généralement assez faible.

  2. Le processus peut entraîner de nombreuses E/S. Le temps d'attente d'E/S fait partie de la charge CPU globale mais peut ne pas faire partie de la valeur d'utilisation CPU d'un processus. Vérifiez donc le wait valeur en top . Il ne vous dit pas quels processus en sont la cause, mais si la valeur est faible, il ne peut pas expliquer l'effet.


Linux
  1. Résoudre les problèmes d'utilisation élevée du processeur sur Windows Server

  2. Obtenir l'utilisation du processeur dans le script shell ?

  3. Définir une variable avec ou sans export

  4. Détecter la mort du processus parent

  5. Le processus vmlinuz s'exécute sur 100 % du processeur

Conseils pour le haut :surveiller la charge du processeur sous Linux

30 meilleurs exemples de commandes pour la surveillance sous Linux

Gestion des processus Linux améliorée avec htop

Htop - Un moniteur de système Linux interactif / visualiseur de processus

Comment interpréter l'utilisation de la mémoire Top/htop ?

Des pics fréquents de CPU, causés par un processus Java inconnu ?