2009-11-22 8 views
1

J'ai besoin de savoir combien de pages de mémoire alloue un processus? Chaque page est 4096, l'utilisation de la mémoire de processus J'ai quelques problèmes pour trouver la bonne valeur. Quand je regarde dans le moniteur de système de gome il y a quelques valeurs à choisir sous la carte de mémoire.Pour connaître le nombre de pages de mémoire utilisées par un processus sur linux

Merci.

Le but de ceci est de diviser l'utilisation de la mémoire par le nombre de pages et de vérifier la taille de la page.

Répondre

5

Il est difficile de connaître la quantité exacte de mémoire allouée correctement: il y a des pages partagées avec d'autres processus (parties r/o des bibliothèques), jamais utilisées par brk et mmap, fichier mmaped qui ne sont pas récupérés complètement du disque en raison des algorithmes de traitement efficaces qui ne touchent qu'une petite partie du fichier, etc., des pages permutées, des pages sales à écrire sur le disque, etc.

Si vous voulez gérer toute cette complexité et comprendre le nombre réel de pages, les informations détaillées sont disponibles à /proc/<pid>/smaps, et il existe des outils, comme mem_usage.py ou smem.pl (facilement googlable) pour le transformer en résumé plus ou moins utilisable.

0

Il s'agirait de la "taille de l'ensemble résident", en supposant que votre processus n'utilise pas d'échange. Notez qu'un processus peut allouer beaucoup plus de mémoire ("Taille de mémoire virtuelle"), mais tant qu'il n'écrit pas dans la mémoire, il n'est pas représenté par la mémoire physique, que ce soit en RAM ou sur le disque . Certains outils système, comme top, affichent une valeur énorme pour "swap" pour chaque processus - c'est bien sûr complètement faux, la valeur est la différence entre VMS et RSS et très probablement les pages de mémoire inutilisées, mais allouées .

Questions connexes