Comment vérifier l'utilisation de la mémoire par processus sur Linux

Comment vérifier l'utilisation de la mémoire par processus sur Linux

De nos jours, un ordinateur peut exécuter de nombreux programmes à la fois. Le CPU n'a aucun problème à gérer tous ces programmes car les processeurs ont plusieurs cœurs pour gérer le multitâche.

Chacun de ces programmes fonctionne comme un ou plusieurs processus. Chaque processus alloue une certaine quantité de RAM ou de mémoire pour lui-même. Il est essentiel que le processus fonctionne correctement. Si un processus ne parvient pas à allouer suffisamment de RAM ou de mémoire, le processus ne peut pas être créé et que le programme ne pourra pas démarrer.

Ainsi, l'une des tâches de base que vous effectuez sur votre ordinateur est de vérifier la quantité de mémoire ou la RAM (mémoire d'accès aléatoire) Chacun du processus utilise. Parce que la RAM ou la mémoire de votre ordinateur est limité.

Imaginez un cas, où vous voulez exécuter un programme et il échoue parce que vous n'avez pas assez de mémoire. Peut-être que certains des processus utilisent beaucoup de mémoire dont vous n'avez pas besoin pour le moment. Vous pouvez tuer ou arrêter ces processus pour libérer de la RAM ou de la mémoire, afin que vous puissiez démarrer vos programmes importants.

Dans cet article, je vais vous montrer comment vérifier l'utilisation de la mémoire de chacun des processus exécutés sur votre machine Linux. J'utiliserai Debian 9 Stretch pour toute la démonstration de cet article. Mais cela devrait fonctionner sur toutes les distributions Linux modernes. Commençons.

Vérification de l'utilisation de la mémoire à l'aide de la commande ps:

Vous pouvez utiliser le ps Commande pour vérifier l'utilisation de la mémoire de tous les processus sur Linux. Il y a un problème avec cette procédure. ps Ne vous montrez pas vraiment la quantité de mémoire qu'un processus utilise au format KB ou MB, mais cela vous montrera combien de mémoire est utilisée en pourcentage.

Vous pouvez vérifier l'utilisation de la mémoire (en pourcentage) de tout le processus exécuté sur votre système d'exploitation Linux avec la commande suivante:

$ ps -o pid, utilisateur,% mem, commande de commande | tri -b -k3 -r

Comme vous pouvez le voir, tous les processus avec l'utilisation de la mémoire en pourcentage sont répertoriés par ordre décroissant (les processus utilisant la plupart de la mémoire sont répertoriés en premier).

Vérification de l'utilisation de la mémoire des processus avec PMAP:

Vous pouvez vérifier la mémoire d'un processus ou d'un ensemble de processus au format lisible par l'homme (en kb ou kilobytes) avec PMAP commande. Tout ce dont vous avez besoin est le PID des processus que vous souhaitez vérifier l'utilisation de la mémoire de.

Disons que vous voulez vérifier la mémoire du processus avec PID 917. Pour faire ça, courez PMAP comme suit:

$ sudo pmap 917

Comme vous pouvez le voir, la mémoire totale utilisée par le processus 917 est de 516104 Ko ou de kilobytes. Vous pouvez également voir la quantité de mémoire que les bibliothèques et autres fichiers nécessaires pour exécuter le processus avec PID 917 utilisent également ici.

Si vous ne vous souciez pas de la quantité de mémoire que les bibliothèques ou d'autres fichiers dépendants utilisent, exécutez PMAP comme suit:

$ sudo pmap 917 | queue -n 1

Comme vous pouvez le voir, seule la mémoire totale utilisée par le processus avec PID 917 est imprimée à l'écran.

Si vous le souhaitez, vous pouvez le filtrer davantage avec awk et n'obtenez que la taille en KB ou en kilo-great. Pour faire ça, courez PMAP comme suit:

$ sudo pmap 917 | Tail -N 1 | awk '/ [0-9] k / print $ 2'

Comme vous pouvez le voir, seule l'utilisation de la mémoire dans KB ou Kilobytes est imprimée.

Maintenant, vous pouvez également énumérer la quantité de mémoire utilisée par plusieurs processus en utilisant leurs véhicules avec PMAP comme suit:

$ sudo pmap 917 531 | total grep

NOTE: Ici, 917 et 531 sont des identifiants de processus ou des PIDS. Vous pouvez mettre autant de pides que vous le souhaitez de cette façon.

Utilisation de PMAP pour répertorier l'utilisation de la mémoire de tous les processus en kilobytes:

Dans cette section, je vais vous montrer comment rédiger votre propre script de shell pour répertorier l'utilisation de la mémoire de tous les processus exécutés sur votre système d'exploitation Linux au format lisible par humain (kilobytes ou kb).

Faire d'abord un nouveau fichier sysmon Dans votre répertoire de travail actuel avec la commande suivante:

$ touch sysmon

Faites maintenant le fichier exécutable avec la commande suivante:

$ chmod + x sysmon

sysmon est le script shell qui affichera tous les processus en cours d'exécution Piquer, PROPRIÉTAIRE, MÉMOIRE (en kb en ordre décroissant) et COMMANDE. Commençons.

Ouvrir le sysmon Script avec votre éditeur de texte préféré, je vais utiliser Kate.

Maintenant, la première commande que je vais exécuter me donnera le Piquer, PROPRIÉTAIRE et COMMANDE de tous les processus de course séparés par le côlon (:) symbole et le stocker dans le Cru variable. Ensuite, faire une boucle à travers la sortie et l'imprimer à l'écran.

Comme vous pouvez le voir, j'obtiens la sortie correcte.

Il est maintenant temps de traiter chaque ligne, de stocker les informations délimitées au côlon dans des variables distinctes. C'est ce que j'ai fait à la ligne 7, 8 et 9.

Comme vous pouvez le voir, je peux imprimer Piquer, PROPRIÉTAIRE et COMMANDE Dans mon propre format maintenant.

Maintenant, il est temps de récupérer l'utilisation de la mémoire de chaque PID. La ligne 10 fait exactement cela.

Comme vous pouvez le voir, tout fonctionne parfaitement. Maintenant, je peux également imprimer l'utilisation de la mémoire de chaque processus en kilobytes (KB).

Maintenant, il ne reste plus qu'à formater la sortie pour être belle. Je préfère le format de table. Ligne 5 imprime l'en-tête de chaque colonne de la table.

Enfin, j'ai imprimé Piquer, PROPRIÉTAIRE, MÉMOIRE (en kb) et COMMANDE de chaque processus dans un format tabulaire en utilisant la ligne 14.

Comme vous pouvez le voir, ça marche un peu bien. Il y a cependant un peu de problème, les processus ne sont pas correctement triés par ordre décroissant par utilisation de la mémoire.

Pour résoudre ce problème, j'ai supprimé Trier -bnr -k3 de la ligne 3 et tout enveloppé dans une fonction shell sysmon_main (). Puis a quitté le trieur au trier commande.

Le script de shell final ressemble à ceci:

Comme vous pouvez le voir, cela fonctionne très bien.

Maintenant, vous pouvez le déplacer quelque part comme / usr / bin et l'exécutez comme d'autres commandes comme suit:

$ sudo mv -v sysmon / usr / bin

Exécutation sysmon:

Merci d'avoir lu cet article.