Comment lire l'utilisation de la mémoire dans htop?

30

C'est ma sortie htop:

entrez la description de l'image ici

Par exemple, je suis confus par ce script rubis:

entrez la description de l'image ici

Combien de mémoire physique utilise-t-elle? 3+1+8+51+51? 51? 51+51?

Lai Yu-Hsuan
la source
Ensuite, la REScolonne est celle que vous souhaitez consulter.
David Schwartz
oui, je le regarde. Mais quelle est l'utilisation de la mémoire par mon script? Pourquoi y a-t-il deux 51s? Consomme-t-il 102 mégaoctets? Ou seulement 51 mégaoctets? Dans le processus extérieur RES contient les processus internes RES, pourquoi 3, 1, 8sont tous moins 51?
Lai Yu-Hsuan
2
Il y a deux 51 parce que le processus a bifurqué. Il ne consomme probablement pas 102 mégaoctets car les deux processus utilisent chacun les mêmes 51 mégaoctets, mais vous ne pouvez pas facilement le dire. L'autre processus RES contient le processus interne si cette mémoire réside également dans l'autre processus et non si ce n'est pas le cas. Les champs RES vous indiquent la quantité de mémoire physique utilisée par chaque processus, mais d'autres processus peuvent (ou non) utiliser également cette même mémoire physique.
David Schwartz
1
Si vous voulez savoir si les deux processus utilisent la même mémoire, utilisez pmap -d <identifiant de processus>
Sirch
1
@ LaiYu-Hsuan: Oui, vous vous trompez. Les pages ne sont pas copiées, elles sont partagées. Ils ne sont copiés que si l'un des processus écrit sur la page, ils doivent alors être non partagés. (Le s'appelle "copie sur écriture" ou "CoW".)
David Schwartz

Réponses:

45

Masquer les threads utilisateur (shift + H) et fermer l'arborescence des processus (F5), puis vous pouvez trier le processus qui vous intéresse par PID et lire la colonne RES (trier par MEM% en appuyant sur shift + M ou F3 pour rechercher en ligne cmd)

nrc
la source
4
Shift-H est ce que je cherchais depuis des lustres. Merci!
un nerd payé le
4

La mémoire est une chose difficile, vous ne pouvez pas calculer la mémoire physique utilisée en exécutant simplement ps / htop / top. La mémoire peut être partagée entre les processus.

Je vous recommande de vérifier l'utilisation avec ce script:

http://www.pixelbeat.org/scripts/ps_mem.py

GioMac
la source