Comment trouver le processus avec la charge la plus élevée?

10

J'ai un VPS monocœur avec une moyenne de charge qui dépasse parfois 25. Quand il atteint cela, il devient insupportablement lent, et même les commandes s'exécutent dash, ce qui est plus rapide et utilise moins de RAM que bash, prend un certain temps à s'exécuter. Comment puis-je suivre le processus à l'origine de la charge élevée?

NerdOfLinux
la source
2
sudo apt install htopvous offre un outil utile en mode texte à cet effet (plus convivial que le standard top). Mais topc'est bien si vous voulez une petite empreinte.
sudodus
2
La longueur de la file d'attente de chargement indique le nombre de processus prêts à utiliser le processeur. Ce n'est pas nécessairement un processus unique à l'origine du problème.
Thorbjørn Ravn Andersen

Réponses:

16

Vous pouvez installer htop. Ce htopqui est bien, c'est qu'il vous montrera votre utilisation par processeur, ainsi qu'un graphique textuel significatif de votre mémoire et de l'utilisation des swaps tout en haut.

Pour installer htop:

sudo apt-get install htop

Démarrez:

htop

entrez la description de l'image ici

Appuyez sur F6pour trier les processus, puis à l'aide de la touche de navigation, vous pouvez choisir PERCENT_CPUet appuyez sur Entrée.

entrez la description de l'image ici

Ou vous pouvez utiliser topde cette façon ( source ):

top -b -n 1 | head -n 12
neferpitou
la source
2
Comme raccourci, vous pouvez utiliser Ppour trier par utilisation du processeur, Mpour la mémoire ou Tpour le temps, et tpour revenir à la disposition de l'arborescence.
deltab
Fait intéressant, htopa une prise en charge de base de la souris. Si vous cliquez sur les colonnes, cela vous permettra également de les trier (si je ne me trompe pas). Il existe d'autres opérations qui fonctionnent avec votre souris.
Ismael Miguel
11

Ce qui suit est simplement volé à Unix.SE: Trouvez le processus qui prend l'utilisation maximale du processeur si l'utilisation du processeur est supérieure à 60%? , bien que bien sûr adapté à cette question.

répertorier les processus par utilisation spécifique du processeur

ps ahux --sort=-c | awk '{if($3>0.0)printf"%s %6d %s\n",$3,$2,$11}'

Cela donne une liste des processus qui ont un >0.0% d' utilisation du CPU , vous pouvez modifier cette valeur en fonction de vos besoins, par exemple >50.0. Chaque ligne contient l'utilisation du CPU en pourcentage, le PID et le fichier du processus.

répertorier les processus qui utilisent le plus de CPU

ps ahux --sort=-c | awk 'NR<=5{printf"%s %6d %s\n",$3,$2,$11}'

Cela montre les 5 premiers NR<=5processus ( ) causant actuellement le plus de charge CPU.

dessert
la source
1

Hier, j'étudiais awket j'ai joué avec les deux autres réponses. Voici le résultat:

  • Obtenez uniquement le processus avec l'utilisation la plus élevée du processeur, en utilisant ps aux:

    ps auxh | awk -v max=0 '{if($3>max){CPU=$3; PID=$2; NAME=$11; max=$3}} END{printf "%5s %6d %s\n",CPU,PID,NAME}'
    
  • Obtenez les trois processus avec l'utilisation la plus élevée du processeur en utilisant top:

    top -b -n 1 | awk 'NR>7 && NR<11 {printf "top: %5s %6d %s %s\n",$9,$1,$12,$13}'
    
  • Obtenez les trois processus avec l'utilisation la plus élevée du processeur en utilisant ps aux:

    ps auxh --sort=-c | awk 'NR<=3 {printf "ps:  %5s %6d %s\n",$3,$2,$11}'
    

J'ai essayé d'exécuter les deux dernières commandes simultanément (avec <command>; wait; <command>et <command> & <command> &), mais j'ai réalisé que ce n'était pas possible du tout :)


Références:

pa4080
la source
Le dernier ne montre pas le processus avec le plus d'utilisation du processeur, mais commence par le second, vous vouliez probablement NR>=2y être - s'avère psfournir l'option hqui omet la ligne d'en-tête, voir ma réponse mise à jour.
dessert
@dessert, vous avez raison, c'était le cas auparavant NR>=2, mais NR>1c'est court :) J'ai mis à jour la réponse.
pa4080
1

Utiliser la topcommande

top- afficher les processus Linux

Le programme supérieur fournit une vue dynamique en temps réel d'un système en cours d'exécution. Il peut afficher des informations récapitulatives du système ainsi qu'une liste de processus ou de threads actuellement gérés par le noyau Linux. Les types d'informations récapitulatives du système affichés et les types, l'ordre et la taille des informations affichées pour les processus sont tous configurables par l'utilisateur et cette configuration peut être rendue persistante à chaque redémarrage.

la source

bon tutoriel youtube

Eric Korolev
la source