View this PageEdit this PageUploads to this PageVersions of this PageHomeRecent ChangesSearchHelp Guide

Ver la memoria usada por un proceso en Linux (sólo heap+stack, sin text (exe) ni shared libraries)

Lo explican muy bien en Virtual threads blog: Understanding memory usage on Linux. Ahí mira el resumen de hacer un "pmap -d", mirando en la última línea lo de "writeable/private: xxxK"

Aparte, en este comentario aclaran que con el ps se puede ver, simplemente hay que leer la columna SZ (heap+stack size) de hacer:

ps -lyu<user>

Para algo más elaborado, está usar una script que consulta los smaps de un proceso; la script en cuestión está escrita en python ps_mem.py. Lo que hace dicha script es recorrer /proc/$pid/smaps para determinar la memoria usada por un proceso. Dicha funcionalidad del kernel es reciente (2.6.14).

Para más información sobre smaps, ver Memory Usage with smaps y una script alternativa en perl para lo mismo que la anterior: smem.pl

Aparte en los smaps de linux 2.6.23 han introducido PSS kernel metric, que es una aproximación bastante razonable al uso de memoria para una carga dada. PSS=proportional set size: "The <<proportional set size>> (PSS) of a process is the count of pages it has in memory, where each page is divided by the number of processes sharing it. So if a process has 1000 pages all to itself, and 1000 shared with one other process, its PSS will be 1500".