Comment surveiller la mémoire consommée par un processus?

16

J'ai un processus que j'aimerais voir combien de mémoire il consomme pendant qu'il fonctionne.

En ce moment, je fais ceci:

ps faux | grep casper

Mais cela me donne juste les informations de ce moment. Ce serait bien de voir cette valeur changer au fur et à mesure que le script avance.

Est-ce que je peux faire ça?

Hommer Smith
la source

Réponses:

15

Méthode 1

Courir:

top

Vérifiez le PID du programme (première colonne), puis exécutez:

top -p PID

Méthode 2

Soit collez-le dans le terminal ou enregistrez-le en tant que mem_usage.sh et exécutez-le à partir du terminal.

#! /bin/bash
while :
do
    clear
    ps faux | grep casper
    sleep 1s
done
Julian Stirling
la source
1
Comment pouvez-vous le changer en affichant%? Par intérêt :-)
Wilf
J'obtiens ceci lors de l'exécution du script: bash: ./memory_usage.sh: bin / bash: mauvais interprète: aucun fichier ou répertoire de ce type
Hommer Smith
Bah! Je l'ai édité! Aurait dû le vérifier correctement avant de poster. La première ligne devrait indiquer où l'exécuter à partir de / bin / bash (j'avais bin / bash donc il vérifiait localement dans un dossier appelé bin pour bash)
Julian Stirling
1
@ wilf ps faux | casper grep | awk '{print $ 11} {print $ 6}' Cela devrait vous donner sur une ligne le nom du programme et la suivante la taille réelle de la mémoire en Ko.
Julian Stirling
7

Pour surveiller uniquement votre processus, vous pouvez vérifier / proc / PID / status ou / proc / PID / statm.

À propos de / proc / PID / statm:

Après cela, cat /proc/PID/statmvous devriez voir ceci:

611450 185001 883 18 0 593431 0

Explication:

  1. taille: - taille totale du programme (611450 X 4096/1024 = 2445800kB = 2388M)
  2. résident: - taille de l'ensemble résident (185001 X 4096/1024 = 740004kB = 722M)
  3. partager: - pages partagées (883 X 4096 = 3532)
  4. très: - texte (code) (18 X 4096/1024 = 72kB = VmExe)
  5. drs: - données / pile
  6. lrs: - bibliothèque (593431 X 4096/1024 = 2373724kB = VmData + VmStk)
  7. dt: - pages sales

Vous pouvez également enregistrer l'activité de la mémoire pour votre processus en faisant une boucle en utilisant la date et le chat.

yilmi
la source
4

vous pouvez utiliser "top"

man top

Ce programme vous permet de trier l'utilisation des ressources, entre autres, RSS, VSZ, CPU, etc. Il est très utile.

Alternativement, pour une ventilation plus détaillée de l'utilisation de la mémoire, essayez 'pmap'

man pmap

Exemple d'utilisation:

pmap -x 1234

à votre santé

Caroline du Sud.

fromage suisse
la source
1
Avec pmap -x PID, vouliez-vous dire une utilisation incroyablement détaillée :-)
Wilf
en effet - ne peut jamais avoir assez de détails :)
swisscheese
1
Sur le mien (Ubuntu 16.04.5 LTS) "pmap -x" avec le PID n'affiche rien d'autre que le PID et la commande. -X fait de même.
2019
2

Ouvrez le Moniteur système et accédez à l' Processesonglet:

Wilf
la source
1

Essayez de:

watch 'ps faux | grep -v grep | grep casper'

Vous pouvez également modifier l'intervalle d'actualisation à l'aide du --interval <seconds>paramètre.

Martin Dvorak
la source
1
Vous n'avez pas besoin du -v grep si vous changez le dernier en grep [c] asper. Cela correspond à Casper mais pas à lui-même.
Wudang