
Puedo obtener un maravilloso mapa de memoria de todos los procesos con el comando de Linux.
pmap $(ps -A | awk '{print $1}'|grep -v PID) | sort | grep \^0
Parece que
...
00007fd6dbf45000 4K rw--- /lib/libnss_compat-2.11.1.so
00007fd6dbf46000 1524K r-x-- /lib/libc-2.11.1.so
00007fd6dc0c3000 2044K ----- /lib/libc-2.11.1.so
...
Aquí se fusionan los mapas de memoria de todos los procesos. Pero me falta la información de dónde tiene el kernel sus páginas de memoria. ¿Existe una herramienta similar para el "mapa de memoria completo"?
Respuesta1
Tu orden no tiene mucho sentido. Las direcciones reportadas por pmap
para cada proceso sólo son válidas en el propio espacio de direcciones de estos procesos, es decir, en su memoria virtual. Se "superpondrán" aunque técnicamente corresponden a páginas diferentes. Algunos de ellos no estarán en la RAM sino en el disco.
Por otro lado, las páginas propiedad del kernel se almacenan en la memoria física.
Respuesta2
Un mejor enfoque sería utilizar sysrq.
Ejecute lo siguiente y verifique su /var/log/messages.
# echo m > /proc/sysrq-trigger
Esto le daría un volcado de memoria por zonas. Pagar siguiendo la URL
https://www.kernel.org/doc/gorman/html/understand/understand005.html