[Linux] Obtenga el uso de memoria del sistema en tiempo real a través de / proc / meminfo

Obtenga el uso de la memoria del sistema en tiempo real a través de / proc / meminfo (Linux)

El kernel de Linux proporciona un mecanismo para acceder a la estructura de datos interna del kernel en tiempo de ejecución a través del sistema de archivos / proc y cambiar la configuración del kernel. El concepto básico del sistema de archivos / proc del sistema linux en varias plataformas de hardware es el mismo.
El sistema de archivos / proc es un mecanismo utilizado por el núcleo y los módulos del núcleo para enviar información a los procesos. Este pseudo sistema de archivos puede interactuar con la estructura de datos interna del núcleo para obtener información del proceso en tiempo real. Tenga en cuenta que el sistema de archivos / proc es almacenamiento y memoria en lugar de un disco duro, y el sistema de archivos virtual / proc es esencialmente una interfaz para acceder a los datos del núcleo en forma de un sistema de archivos.

/ proc / meminfo

El archivo / proc / meminfo en el sistema Linux se usa para registrar los detalles del uso de la memoria del sistema. Los datos en los comandos superior y libre se calculan a partir de la información en este archivo y se muestran en un formato específico.
/ proc / meminfo detalles del contenido:

$cat /proc/meminfo
MemTotal:        8052444 kB
MemFree:         2754588 kB
MemAvailable:    3934252 kB
Buffers:          137128 kB
Cached:          1948128 kB
SwapCached:            0 kB
Active:          3650920 kB
Inactive:        1343420 kB
Active(anon):    2913304 kB
Inactive(anon):   727808 kB
Active(file):     737616 kB
Inactive(file):   615612 kB
Unevictable:         196 kB
Mlocked:             196 kB
SwapTotal:       8265724 kB
SwapFree:        8265724 kB
Dirty:               104 kB
Writeback:             0 kB
AnonPages:       2909332 kB
Mapped:           815524 kB
Shmem:            732032 kB
Slab:             153096 kB
SReclaimable:      99684 kB
SUnreclaim:        53412 kB
KernelStack:       14288 kB
PageTables:        62192 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    12291944 kB
Committed_AS:   11398920 kB
VmallocTotal:   34359738367 kB
VmallocUsed:           0 kB
VmallocChunk:          0 kB
HardwareCorrupted:     0 kB
AnonHugePages:   1380352 kB
CmaTotal:              0 kB
CmaFree:               0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:      201472 kB
DirectMap2M:     5967872 kB
DirectMap1G:     3145728 kB

Explicación detallada:

  • MemTotal: todo el tamaño de la memoria (RAM), menos un poco de espacio reservado y tamaño del núcleo

  • MemFree: memoria física no utilizada en absoluto, lowFree + highFree

  • MemAvailable: Inicie una nueva aplicación sin usar el espacio de intercambio. El tamaño máximo de memoria disponible se calcula mediante MemFree + Activo (archivo) + Inactivo (archivo) - (marca de agua + min (marca de agua, Activo (archivo) + Inactivo (archivo) / 2))

  • Buffers: páginas de caché ocupadas por dispositivos de bloque, que incluyen: lectura y escritura directa de dispositivos de bloque y metadatos del sistema de archivos (metadatos), como páginas de caché utilizadas por superblock.

  • En caché: representa la página de caché ocupada por datos de archivo ordinarios.

  • SwapCached: el caché de intercambio contiene páginas de memoria anónimas que se determina que se intercambian, pero que aún no se han escrito en el área de intercambio físico. Esas páginas de memoria anónimas, como las páginas de memoria aplicadas por el proceso de usuario malloc, no están asociadas con ningún archivo. Si se produce un intercambio, dicha memoria se escribirá en el área de intercambio.

  • Activo: activo contiene anon activo y archivo activo

  • Inactivo: inactivo 包含 inactivo anon 和 archivo inactivo

  • Activo (anon): páginas anónimas (páginas anónimas), las páginas de memoria de los procesos del usuario se dividen en dos tipos: páginas de memoria asociadas con archivos (como archivos de programa, páginas de memoria correspondientes a archivos de datos) y páginas de memoria no relacionadas con la memoria (como procesos La pila, la memoria solicitada con malloc), la primera se llama páginas de archivo o páginas mapeadas, y la segunda se llama páginas anónimas.

  • Inactivo (anon): ver arriba

  • Activo (archivo): ver arriba

  • Inactivo (archivo): ver arriba

  • SwapTotal: el tamaño total del espacio de intercambio disponible (cuando la partición de intercambio no tiene suficiente memoria física, una parte del espacio del disco duro se libera para su uso por el programa actual)

  • SwapFree: el tamaño actual del intercambio restante

  • Sucio: el tamaño de la memoria que debe escribirse en el disco

  • Reescritura: el tamaño del área de memoria que se está escribiendo de nuevo

  • AnonPages: el tamaño de la memoria de páginas sin asignar

  • Mapeado: el tamaño del mapa, como dispositivos y archivos

  • Losa: el tamaño de la losa de la estructura de datos del núcleo

  • SReclaimable: el tamaño de la losa reciclable

  • SUnclaim: el tamaño de la losa no reciclable

  • Tablas de páginas: administrar el tamaño de página de memoria

  • NFS_Unstable: el tamaño de la tabla de páginas inestable

  • VmallocTotal: el tamaño del área de memoria de Vmalloc

  • Vmalloc Usado: el tamaño del área de memoria Vmalloc utilizada

  • VmallocChunk: el tamaño continuo máximo disponible en el área de vmalloc

Publicado 397 artículos originales · elogiado 14 · 100,000+

Supongo que te gusta

Origin blog.csdn.net/LU_ZHAO/article/details/105440428
Recomendado
Clasificación