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 dash
name__, qui est plus rapide et utilise moins de RAM que bash
name__, prend un certain temps. Comment savoir quel processus est à l'origine de la charge élevée?
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
Appuyez sur F6
pour trier les processus, puis utilisez la touche de navigation pour choisir PERCENT_CPU
et appuyez sur Entrée.
Ou vous pouvez utiliser top
de cette manière ( source ):
top -b -n 1 | head -n 12
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.
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.
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.
Utiliser la commande top
top
- affiche les processus LinuxLe 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.
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: