LINUX

Cómo verificar el uso de la memoria del proceso con el comando pmap de Linux

El comando pmap de Linux muestra el mapa de uso de memoria de uno o más procesos. Pmap informa sobre el espacio de direcciones o el mapa de uso de memoria de un proceso.

Pmap es en realidad un comando del sistema operativo Sun y Linux solo admite una cantidad muy limitada de funciones. Pero es muy útil para encontrar el espacio de direcciones completo de un proceso. Para verificar el uso de la memoria del proceso, necesitamos PID o ID único del proceso en ejecución, podemos obtener PID de /proc o comandos regulares como top o ps.

Anteriormente hablamos sobre verificar la memoria del proceso usando el comando ps y superior, en este tutorial aprenderé a usar el comando pmap.

Sintaxis de uso

Revisemos la sintaxis básica del comando pmap.

# pmap PID

o

# pmap [options] PID

En la salida muestra la dirección total, kbytes, modo y mapeo.

elección

-x extended Show the extended format.
-d device Show the device format.
-q quiet Do not display some header/footer lines.
-V show version Displays version of program.

1) Mapa de uso de memoria de un solo proceso

Para verificar el uso de memoria de un solo proceso, use el comando map seguido del número PID.

Veamos un pmap de ejemplo:

# pmap 1013
1013: /usr/sbin/sshd
00110000 1480K r-x-- /usr/lib/libcrypto.so.1.0.0
00282000 80K rw--- /usr/lib/libcrypto.so.1.0.0
00296000 12K rw--- [ anon ]
00299000 36K r-x-- /lib/libkrb5support.so.0.1
002a2000 4K rw--- /lib/libkrb5support.so.0.1
00739000 4K rw--- /lib/libresolv-2.12.so
0073a000 8K rw--- [ anon ]
00825000 120K r-x-- /lib/ld-2.12.so
00843000 4K r---- /lib/ld-2.12.so
00844000 4K rw--- /lib/ld-2.12.so
0090d000 32K r-x-- /lib/libwrap.so.0.7.6
00915000 4K rw--- /lib/libwrap.so.0.7.6
00948000 484K r-x-- /usr/sbin/sshd
009c1000 8K rw--- /usr/sbin/sshd
009c3000 20K rw--- [ anon ]
009e0000 92K r-x-- /lib/libpthread-2.12.so
009f7000 4K r---- /lib/libpthread-2.12.so

total 8232K

2) Mapear el uso de memoria de múltiples procesos

Podemos verificar el mapa de memoria de múltiples procesos insertando múltiples PID. Para eso, agregue más PID con espacio adicional.

# pmap 1013 1217 1118

3) Mapa de memoria extendida sobre un proceso

Para imprimir información de memoria extendida para el uso de un proceso -x opción. Aquí Dirección, Kbyte, Sucio, RSS, Modo y Mapeo contienen información de la siguiente manera:

Campos extendidos y formato de dispositivo

Address: start address of map
Kbytes: size of map in kilobytes
RSS: resident set size in kilobytes
Dirty: dirty pages (both shared and private) in kilobytes
Mode: permissions on map: read, write, execute, shared, private (copy on write)
Mapping: file backing the map, or '[ anon ]' for allocated memory, or '[ stack ]' for the program stack
Offset: offset into the file
Device: device name (major:minor)
# pmap -x 1013
1013: /usr/sbin/sshd
Address Kbytes RSS Dirty Mode Mapping
00110000 1480 92 0 r-x-- libcrypto.so.1.0.0
00282000 80 80 80 rw--- libcrypto.so.1.0.0
00296000 12 8 4 rw--- [ anon ]
00299000 36 0 0 r-x-- libkrb5support.so.0.1
002a2000 4 4 4 rw--- libkrb5support.so.0.1
002a3000 16 0 0 r-x-- libplc4.so
002a7000 4 4 4 rw--- libplc4.so
002ab000 88 4 0 r-x-- libaudit.so.1.0.0
002c1000 4 4 4 r---- libaudit.so.1.0.0
002c2000 4 4 4 rw--- libaudit.so.1.0.0
002c3000 216 4 0 r-x-- libgssapi_krb5.so.2.2
002f9000 4 4 4 rw--- libgssapi_krb5.so.2.2
002fa000 808 4 0 r-x-- libkrb5.so.3.3
003c4000 24 24 24 rw--- libkrb5.so.3.3
003ca000 152 4 0 r-x-- libk5crypto.so.3.1
003f0000 4 4 4 rw--- libk5crypto.so.3.1
003f1000 92 0 0 r-x-- libnssutil3.so
00408000 12 12 12 rw--- libnssutil3.so
0040b000 12 0 0 r-x-- libplds4.so
0040e000 4 4 4 rw--- libplds4.so

-------- ------- ------- ------- -------
total kB 8232 - - -

Conclusión

En este tutorial, aprendemos a usar el comando pmap para verificar la información de la memoria de procesos individuales y múltiples. Si tiene alguna pregunta o comentario, no dude en dejar un comentario.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar