Descubra la memoria total asignada para un proceso particular en Ubuntu

15

¿Cómo puedo encontrar la memoria total asignada para un proceso en particular en Ubuntu?

Anjali
fuente
1
¿Has probado ps -aefl y miraste la columna SZ?
mdpc
2
¿Qué quiere decir con "averiguar la memoria asignada"? ¿Quieres saber cuánta memoria está usando el proceso?
Gilles 'SO- deja de ser malvado'

Respuestas:

14

Tratar:

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

Para encontrar el uso de memoria de su bashshell actual (suponiendo que esté usando bash). Cambia basha lo que sea que estés investigando. Si buscas un proceso específico, simplemente úsalo solo:

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

De la manpágina:

RSS: tamaño de conjunto residente, la memoria física no intercambiada que una tarea ha utilizado (en kilobytes).

SZ: tamaño en páginas físicas de la imagen central del proceso. Esto incluye texto, datos y espacio de pila.

VSZ: tamaño de memoria virtual del proceso en KiB (unidades de 1024 bytes).

La manpágina para psmostrará una lista de todos los argumentos posibles de la -oopción (hay bastantes para elegir). En lugar de -o rss,szusar la vopción de estilo BSD (sin guión) que muestra un diseño de memoria alternativo.

garethTheRed
fuente
Gracias Gareth ... ¿Estás diciendo que SZ es la memoria asignada para ese proceso?
Anjali
44
Hay un buen control de calidad aquí que explica la relación entre RSS, SZy VSZ.
garethTheRed
0

¿Cómo averiguar la memoria total asignada para un proceso particular en ubuntu?

No define cuál es la memoria asignada para un proceso, y en realidad esa es una pregunta bastante compleja (qué pasa con las asignaciones de memoria compartida - vea mmap (2) para más detalles; qué pasa con la memoria compartida POSIX - vea shm_overview (7) para más información) ; ¿qué pasa con algunas páginas en la caché de páginas utilizadas para archivos abiertos; etc ...)

Se podría utilizar el /proc/sistema de archivos (que por cierto es utilizado por ps, pmap, top, htopetc ....). Lea proc (5) para más información. En particular, para el proceso de pid 1234 se puede utilizar /proc/1234/status, /proc/1234/statm, /proc/1234/mapsetc ... Todos ellos son pseudo-archivos de texto (un poco como tuberías) que se pueden ver con cat(o leer secuencialmente dentro de algún programa). Por cierto, desde el interior de un programa que puede utilizar /proc/self (que es un pseudoenlace simbólico), por ejemplo, leer de forma secuencial, /proc/self/statusetc.

Ver también LinuxAteMyRam .

Basile Starynkevitch
fuente