web-dev-qa-db-fra.com

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

J'ai un VPS simple avec une charge moyenne qui dépasse parfois 25. Quand il atteint cela, il devient insupportablement lent, et même les commandes courent via dashname__, qui est plus rapide et utilise moins de RAM que bashname__, prend un certain temps. Comment savoir quel processus est à l'origine de la charge élevée?

10
NerdOfLinux

Vous pouvez installer htop. Ce qui est bien avec htop, c’est qu’il vous montrera votre utilisation par processeur, ainsi qu’un graphique textuel significatif de votre mémoire et que vous utiliserez la permutation en haut.

Pour installer htop:

Sudo apt-get install htop

Commencez le:

htop

enter image description here

Appuyez sur F6 pour trier les processus, puis utilisez la touche de navigation pour choisir PERCENT_CPU et appuyez sur Entrée.

enter image description here

Ou vous pouvez utiliser top de cette manière ( source ):

top -b -n 1 | head -n 12
15
neferpitou

Le fichier ci-dessous est simplement dérobé à nix.SE: Trouver le processus qui utilise au maximum l’utilisation du processeur si celui-ci dépasse 60%? , bien que adapté à cette question.

lister 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}'

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

liste les processus avec le plus d'utilisation du processeur

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

Cela montre les 5 processus (NR<=5) qui causent le plus de charge processeur.

9
dessert

Utiliser la commande top

top - affiche 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 sur le système, ainsi qu'une liste des processus ou des threads actuellement gérés par le noyau Linux. Les types d'informations récapitulatives système affichées et les types, ordre et taille des informations affichées pour les processus sont tous configurables par l'utilisateur et cette configuration peut être rendue persistante lors des redémarrages.

source

bon tutoriel sur youtube

1
Eric Korolev

Hier, j'étudiais awk et 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 alors réalisé que ce n'était pas du tout possible:)


Références:

1
pa4080