Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : .NET dans Linux
Cet article explique comment utiliser et htop
utiliser top
des outils en ligne de commande pour surveiller les processus.
Prerequisites
Comme dans les parties précédentes, cette partie est structurée pour mettre davantage l’accent sur la théorie et les principaux à suivre lorsque vous commencez à résoudre les problèmes. Elle n’a aucun prérequis. Toutefois, vous devez avoir déjà configuré les éléments suivants si vous avez suivi toutes les étapes de cette formation jusqu’à présent :
- Nginx a deux sites web :
- Le premier site web écoute les requêtes à l’aide de l’en-tête de l’hôte myfirstwebsite (
http://myfirstwebsite
) et route les requêtes vers l’application demo ASP.NET Core qui écoute sur le port 5000. - Le deuxième site web écoute les requêtes à l’aide de l’en-tête de l’hôte buggyamb (
http://buggyamb
) et route les requêtes vers la deuxième application ASP.NET Core de bogues qui écoute sur le port 5001.
- Le premier site web écoute les requêtes à l’aide de l’en-tête de l’hôte myfirstwebsite (
- Les deux applications ASP.NET Core s’exécutent en tant que services qui redémarrent automatiquement lorsque le serveur est redémarré, ou les applications cesse de répondre ou échouent.
- Un pare-feu local Linux est activé et configuré pour autoriser le trafic SSH et HTTP.
Objectif de cette partie
Lorsque vous résolvez un problème de performances, vous devrez peut-être surveiller l’utilisation du processeur et de la mémoire d’un processus pour comprendre comment sa consommation de ressources évolue au fil du temps. Dans Windows, vous pouvez utiliser le Gestionnaire des tâches pour le faire. Linux a plusieurs outils qui visent à atteindre la même chose.
Cette partie examine les outils en ligne de commande et htop
les top
outils en ligne de commande pour surveiller les processus.
haut
Pour ouvrir l’équivalent du Gestionnaire de tâches dans Linux, exécutez la top
commande.
Dans cet exemple, vous pouvez observer dans le premier processus répertorié pour PID 19933 que le processus présente une utilisation élevée du processeur et que l’utilisation de la mémoire est également élevée.
Sélectionner et désélectionner des colonnes
Pour ajouter ou supprimer des colonnes dans la vue que l’outil top
fournit, sélectionnez F pendant que vous exécutez l’outil. Les colonnes marquées par un astérisque (*) sont celles sélectionnées pour l’affichage. Utilisez les touches de direction pour parcourir les colonnes disponibles et utilisez la barre d’espace pour sélectionner ou désélectionner les colonnes.
Sélectionnez Échap pour quitter.
Les modifications seront enregistrées pour votre compte d’utilisateur. La prochaine fois que vous exécutez top
, vous verrez les colonnes que vous avez sélectionnées.
Filtrer la sortie par les utilisateurs
Pour pouvoir cibler des scénarios de consommation de ressources problématiques, il est important de savoir comment filtrer la top
sortie. L’une des méthodes les plus courantes consiste à filtrer les processus par nom d’utilisateur. Vous pouvez sélectionner U, puis taper le nom d’utilisateur. La capture d’écran suivante montre l’outil top
qui filtre les captures instantanées de processus disponibles pour l’utilisateur www-data.
Lorsque vous sélectionnez Entrée, vous voyez les processus exécutés par l’utilisateur donné (l’utilisateur www-data dans cet exemple).
Lorsque vous inspectez la sortie de la vue filtrée top
, vous pouvez voir que deux des processus sont des processus .NET. Ces deux processus exécutent les deux applications ASP.NET Core, tandis que les deux autres processus appartiennent à Nginx.
Vous pouvez utiliser des filtres lorsque vous exécutez la top
commande directement. Par exemple, si vous exécutez la top -u www-data
commande, elle génère la même sortie que celle obtenue si vous deviez ouvrir l’outil top
et sélectionner U pour filtrer par utilisateur.
Supprimer les processus inactifs
Sélectionnez I ou exécutez la top -i
commande pour filtrer la top
sortie pour afficher uniquement les processus qui consomment le processeur. La capture d’écran suivante montre la sortie de la top -i -u www-data
commande. Notez que la top
sortie masque les processus inactifs, même s’il existe quatre processus démarrés à l’aide du compte d’utilisateur www-data. Seul le processus avec PID=19933 consomme l’UC.
Sélectionnez-moi de nouveau pour activer/désactiver le commutateur et afficher les processus inactifs.
Processus de destruction
Pour tuer ou mettre fin à un processus, vous devez envoyer un signal de destruction au processus. Vous pouvez vous rappeler que nous avons utilisé la sudo kill -9 <PID>
commande précédemment pour tuer un processus. Vous pouvez également tuer des processus à l’aide top
de . Sélectionnez K pour tuer un processus pendant l’exécution top
, puis tapez le PID du processus que vous souhaitez tuer.
Après avoir sélectionné Entrée, top
demande le type de signal. Sélectionnez Entrer une fois de plus pour envoyer le signal « terminate » (15/sigterm
).
Après quelques secondes, vous verrez que le processus de 122632 PID est manquant dans la liste. N’oubliez pas que dans les listes, le processus « 122632 » correspond à l’application BuggyAmb ASP.NET Core. Étant donné qu’il a été configuré pour démarrer automatiquement, vous verrez qu’un nouveau processus .NET qui a un nouveau PID démarre après l’arrêt.
htop
Htop est une visionneuse de processus et une application en mode texte pour la surveillance du système en temps réel, similaire à top
. Il est facile à utiliser et affiche une liste complète des processus en cours d’exécution.
L’outil htop
est préinstallé dans la distribution d’Ubuntu Linux utilisée pour installer le serveur virtuel pour ce cours. Si htop
elle n’est pas installée dans votre distribution Linux, vous pouvez utiliser les gestionnaires de packages dans Linux pour l’installer. (Voir Partie 1.3 - Installez .NET dans Linux pour plus d’informations.)
Pour démarrer l’outil, exécutez la htop
commande. Vous voyez une sortie colorée qui ressemble à la suivante :
Note
La ligne inférieure indique les touches de fonction que vous pouvez utiliser. Sélectionnez F6 pour trier selon différentes options, utilisez les touches de direction pour sélectionner la PERCENT_MEM
colonne, puis sélectionnez Entrée. Cela trie les processus en fonction de l’utilisation de la mémoire.
Comme avec la top
commande, vous pouvez utiliser des raccourcis clavier pour plusieurs fonctions. Par exemple, sélectionnez U pour sélectionner le nom d’utilisateur dans une liste.
Toutefois, il y a quelque chose de déroutant dans la htop
sortie. En fonction de la sortie des derniers exemples, vous devez vous attendre à voir quatre processus pour l’utilisateur www-data. Toutefois, nous voyons qu’il existe de nombreuses entrées supplémentaires. Qu’est-ce qui pourrait provoquer ce comportement ?
La différence dans la sortie se produit, car htop
les processus et leurs threads sont affichés par défaut. Sauf si vous souhaitez afficher les threads, nous vous recommandons de toujours désactiver la vue thread pour rendre la sortie plus claire. Pour désactiver l’affichage thread et afficher uniquement les processus, sélectionnez Maj+H. La capture d’écran suivante montre les processus sans threads.
Si vous devez tuer un processus, sélectionnez le processus à l’aide des touches de direction, sélectionnez F9, puis entrez pour envoyer le signal « terminer ».
Cette vue d’ensemble succincte doit vous permettre de comprendre quels processus exécutent et consomment des ressources sur votre système. Pour quitterhtop
, sélectionnez F10 ou Ctrl+C.
Prochaines étapes
La partie suivante de cette série (partie 3.3 - Débogueurs, vidages de cœurs et collecte de vidages principaux) traite des débogueurs et des fichiers de vidage.