¿Cómo monitorear la memoria consumida por un proceso?


16

Tengo un proceso que me gustaría ver cuánta memoria consume mientras se está ejecutando.

En este momento hago esto:

ps faux | grep casper

Pero eso solo me da la información de ese momento. Sería bueno ver que ese valor cambia a medida que avanza el script.

¿De alguna manera puedo hacer esto?

Respuestas:


15

Método 1

Correr:

top

Verifique el PID del programa (primera columna), luego ejecute:

top -p PID

Método 2

Pegue esto en la terminal o guárdelo como mem_usage.sh y ejecútelo desde la terminal.

#! /bin/bash
while :
do
    clear
    ps faux | grep casper
    sleep 1s
done

1
¿Cómo puedes cambiarlo de mostrar%? Fuera de interés :-)
Wilf

Obtengo esto cuando ejecuto el script: bash: ./memory_usage.sh: bin / bash: bad interpreter: No such file or directory
Hommer Smith

¡Bah! ¡Lo he editado! Debería haberlo comprobado correctamente antes de publicar. La primera línea debería decir desde dónde ejecutarlo / bin / bash (tenía bin / bash por lo que estaba comprobando localmente en una carpeta llamada bin para bash)
Julian Stirling

1
@ wilf ps faux | grep casper | awk '{print $ 11} {print $ 6}' Eso debería proporcionarle en una línea el nombre del programa y luego el tamaño de memoria real en kB.
Julian Stirling

6

Para monitorear solo su proceso, puede verificar / proc / PID / status o / proc / PID / statm.

Acerca de / proc / PID / statm:

Después de hacerlo cat /proc/PID/statm, deberías ver esto:

611450 185001 883 18 0 593431 0

Explicacion:

  1. tamaño: - tamaño total del programa (611450 X 4096/1024 = 2445800kB = 2388M)
  2. residente: - tamaño del conjunto residente (185001 X 4096/1024 = 740004kB = 722M)
  3. compartir: - páginas compartidas (883 X 4096 = 3532)
  4. trs: - texto (código) (18 X 4096/1024 = 72kB = VmExe)
  5. drs: - datos / pila
  6. lrs: - biblioteca (593431 X 4096/1024 = 2373724kB = VmData + VmStk)
  7. dt: - páginas sucias

También puede registrar la actividad de memoria para su proceso haciendo un bucle usando date y cat.


4

puedes usar 'top'

man top

Este programa le permite ordenar el uso de recursos por, entre otros, RSS, VSZ, CPU, etc. Es muy útil.

Alternativamente, para un desglose más detallado del uso de memoria, intente 'pmap'

man pmap

Ejemplo de uso:

pmap -x 1234

salud

Carolina del Sur.


1
Con pmap -x PID, ¿te refieres a un uso increíblemente detallado :-)
Wilf

de hecho - nunca puede tener suficientes detalles :)
swisscheese

1
En el mío (Ubuntu 16.04.5 LTS) "pmap -x" con el PID no muestra nada más que el PID y el comando. -X hace lo mismo.
orden

2

Abra el Monitor del sistema y vaya a la Processespestaña:


1

Intenta:

watch 'ps faux | grep -v grep | grep casper'

También puede cambiar el intervalo de actualización utilizando el --interval <seconds>parámetro.


1
No necesita el -v grep si cambia el último a grep [c] asper. Eso coincide con casper pero no con sí mismo.
Wudang
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.