¿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.
¿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.
Respuestas:
Tratar:
Para encontrar el uso de memoria de su
bash
shell actual (suponiendo que esté usandobash
). Cambiabash
a lo que sea que estés investigando. Si buscas un proceso específico, simplemente úsalo solo:De la
man
pá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
man
página paraps
mostrará una lista de todos los argumentos posibles de la-o
opción (hay bastantes para elegir). En lugar de-o rss,sz
usar lav
opción de estilo BSD (sin guión) que muestra un diseño de memoria alternativo.fuente
RSS
,SZ
yVSZ
.Puede usar lo
pmap
que muestra el mapa de memoria de un proceso:Para obtener más información al respecto, consulte la página de manual
man pmap
o eche un vistazo a pmap (1): informe del mapa de memoria del proceso: página de manual de Linux .fuente
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 porps
,pmap
,top
,htop
etc ....). 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/maps
etc ... Todos ellos son pseudo-archivos de texto (un poco como tuberías) que se pueden ver concat
(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/status
etc.Ver también LinuxAteMyRam .
fuente