2011-07-28 13 views
5

Tengo un proceso de servidor de Linux que carga grandes recursos en el inicio. Este proceso se bifurcará a pedido. Los recursos que se cargan en el inicio son más importantes y no cambiarán durante el tiempo de ejecución. Los procesos secundarios alternativos usan estructuras de control de lectura/escritura para manejar las solicitudes a los recursos constantes.Cómo encontrar páginas de memoria compartida/copiada en procesos bifurcados en C

¿Cómo puedo saber cuánta memoria se comparte entre los procesos y cuántos es necesario para cada proceso? ¿O qué páginas están duplicadas debido al acceso de escritura de cualquiera de los procesos?

+0

¿Podría esta información estar en algún lugar en '/ proc/$ pid/maps' tal vez? – Louen

Respuesta

5

Puede obtener esta información de los archivos virtuales /proc/$pid/pagemap y /proc/kpagecount y /proc/kpageflags en el sistema de archivos proc. El acceso a este último requiere root porque podría perder información privilegiada sobre las asignaciones de memoria de proceso que no le pertenecen. Lea Documentation/vm/pagemap.txt de los documentos del kernel para obtener detalles sobre el formato de datos.

Cuestiones relacionadas