Découvrez la mémoire totale allouée à un processus particulier dans Ubuntu

15

Comment puis-je connaître la mémoire totale allouée à un processus particulier dans Ubuntu?

Anjali
la source
1
Avez-vous essayé ps -aefl et regardé la colonne SZ?
mdpc
2
Qu'entendez-vous par «connaître la mémoire allouée»? Voulez-vous savoir combien de mémoire le processus utilise?
Gilles 'SO- arrête d'être méchant'

Réponses:

14

Essayer:

pidof bash | xargs ps -o rss,sz,vsz

Pour trouver l'utilisation de la mémoire de votre bashshell actuel (en supposant que vous utilisez bash). Changez bashpour tout ce que vous étudiez. Si vous recherchez un processus spécifique, utilisez-le seul:

ps -o rss,sz,vsz <process id>

Depuis la manpage:

RSS: taille de l'ensemble résident, la mémoire physique non permutée utilisée par une tâche (en kilo-octets).

SZ: taille en pages physiques de l'image centrale du processus. Cela inclut le texte, les données et l'espace de pile.

VSZ: taille de la mémoire virtuelle du processus en Kio (unités de 1024 octets).

La manpage de psrépertorie tous les arguments possibles de l' -ooption (il y en a plusieurs parmi lesquels choisir). Au lieu de cela, -o rss,szvous pouvez utiliser l' voption de style BSD (pas de tiret) qui montre une disposition de mémoire alternative.

garethTheRed
la source
Merci gareth ... Êtes-vous en train de dire que SZ est la mémoire allouée pour ce processus?
Anjali
4
Il y a un bon AQ ici qui explique la relation entre RSS, SZet VSZ.
garethTheRed
0

comment connaître la mémoire totale allouée à un processus particulier dans ubuntu?

Vous ne définissez pas quelle est la mémoire allouée à un processus, et en fait c'est une question assez complexe (qu'en est-il des mappages de mémoire partagée - voir mmap (2) pour plus de détails; qu'en est-il de la mémoire partagée POSIX - voir shm_overview (7) pour plus ; qu'en est-il de certaines pages du cache de pages utilisées pour les fichiers ouverts; etc ...)

Vous pouvez utiliser le /proc/système de fichiers (qui est utilisé par BTW ps, pmap, top, htopetc ....). Lisez proc (5) pour en savoir plus. En particulier pour le processus de pid 1234 vous pouvez utiliser /proc/1234/status, /proc/1234/statm, /proc/1234/mapsetc ... Ils sont tous les fichiers pseudo-textuels (un peu comme les tuyaux) que vous pouvez voir avec cat(ou lire de façon séquentielle dans certains programmes). BTW, depuis l'intérieur d'un programme que vous pourriez utiliser /proc/self (qui est un pseudo lien symbolique), par exemple lire séquentiellement /proc/self/statusetc ...

Voir aussi LinuxAteMyRam .

Basile Starynkevitch
la source