Similaire à la question Comment enregistrer la charge du processeur? , Je voudrais enregistrer la mémoire d'un processus.
Le processus que je veux enregistrer est tué sur un serveur distant et je veux connaître la charge du processeur et l'utilisation de la mémoire juste avant sa mort.
[mise à jour]
Le petit script de python de Stefano Palazzo et
Les valeurs de sortie d'une ligne de Michał qui sont plus petites que top
pour CPU et Mem. Avez-vous une idée pourquoi?
haut de sortie:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2312 schXX 20 0 1241m 328m 58m S 100 0.3 11:56.68 MATLAB
sortie du script python de Stefano Palazzo:
python memlogger.py 2312
%CPU %MEM
76.00 0.20
76.00 0.20
command-line
cpu-load
logging
memory-usage
Framester
la source
la source
ps
peut différer detop
: stackoverflow.com/questions/131303/…Réponses:
Vous pouvez créer une doublure en coque:
pour enregistrer le processus avec pid = 123 simplement:
ou pour voir et écrire le journal dans un fichier:
Si vous souhaitez que d'autres données soient enregistrées, modifiez les
-o {this}
options. Voir laman ps
section "SPECIFICATEURS DE FORMAT STANDARD" pour les paramètres disponibles à utiliser. Si vous souhaitez une résolution temporelle différente, changezsleep {this}
de fonctionlogpid()
.la source
Si vous recherchez précisément les
top
statistiques, vous pouvez exécutertop
en mode batch en spécifiant le pid du processus que vous recherchez. En prenant l'exemple de cette page ( http://www.dedoimedo.com/computers/linux-cool-hacks.html ) si vous avez tapéVous auriez "top en cours d'exécution en mode batch (-b). Il va actualiser toutes les 10 secondes, comme spécifié par l'indicateur de retard (-d), pour un nombre total de 3 itérations (-n). La sortie sera envoyée dans un fichier. " Y compris
-p
vous pouvez spécifier lepid
processus que vous recherchez. Cela renverra bien sûr plus que purement cpu et ram mais il contiendra ces champs. Dans mon cas, par exemple, j'obtiendrais ce qui suit lors de la surveillance du pid 9189 en utilisanttop -b -d 10 -n 3 -p 9189 >> ~/top-file
:la source
watch
ne me semble pas idéal pour cela: superuser.com/questions/281347/filtering-top-command-outputCe script python simple devrait faire ce que vous voulez:
Vous devez d'abord trouver l'ID de processus du programme que vous souhaitez surveiller, puis vous pouvez exécuter le script avec le PID comme argument:
Il imprimera l'utilisation du processeur et de la RAM en pourcentage deux fois par seconde:
Vous pouvez ensuite rediriger sa sortie vers un fichier afin de l'importer dans une feuille de calcul plus tard (
python log.py 9391 > firefox_log.txt
) et importer les données dans une feuille de calcul en sélectionnantTab
votre séparateur.Le programme se ferme lorsque vous appuyez sur Ctrl + C ou lorsque le processus est interrompu.
la source