ver uso procesador porcentaje memoria meminfo consumo comando linux memory procfs

linux - uso - Entradas en/proc/meminfo



ver memoria ram linux (3)

Puedo entender la mayor parte de la información contenida en / proc / meminfo como memoria total, buffers, caché, etc.

  • AnonPages
  • Mapeado
  • Losa
  • NFS_Unstable
  • Rebotar
  • VmallocTotal
  • VmallocUsed
  • VmallocChunk

Si alguien se pregunta, estoy hablando de la salida del comando linux cat / proc / meminfo


De RedHat

VMallocTotal: la cantidad total de memoria, en kilobytes, del total del espacio de direcciones virtuales asignado. VMallocUsed: la cantidad total de memoria, en kilobytes, del espacio de direcciones virtuales utilizado. VMallocChunk: el bloque de memoria contiguo más grande, en kilobytes, de espacio de direcciones virtuales disponible.


La fuente canónica de esta información es /usr/src/linux/Documentation/filesystems/proc.txt . Específicamente,

AnonPages: Non-file backed pages mapped into userspace page tables Mapped: files which have been mmaped, such as libraries Slab: in-kernel data structures cache NFS_Unstable: NFS pages sent to the server, but not yet committed to stable storage Bounce: Memory used for block device "bounce buffers" VmallocTotal: total size of vmalloc memory area VmallocUsed: amount of vmalloc area which is used VmallocChunk: largest contigious block of vmalloc area which is free


Mi comprensión es la siguiente.
Y estoy de acuerdo en que estos números son difíciles de entender y muestran valores inconsistentes.

  • MemTotal

    = MemFree + Active + Inactive + Slab + PageTables + VmallocUsed + X (X : alloc_pages() (get_free_pages(), etc))

    Pero el valor vmallocused reciente del kernel podría estar equivocado. Esto se debe a que cuenta regiones VM_xxx como VM_IOREMAP, VM_MAP, ... que no sea el área VM_ALLOC.

    La región VM_IOREMAP puede ser una memoria de mapeo que puede estar fuera de la administración de la memoria del kernel, por lo que la fórmula anterior no puede ser precisa o completamente incorrecta.

    Usted puede hacer:

    • Marque / proc / vmallocinfo para ordenar todas las entradas y filtrar por sí mismo,
    • Modifique fs / proc / mmu.c: get_vmalloc_info () para contar regiones solo si (vma-> flags & VM_ALLOC)
  • Activo + Inactivo

    = Buffers + Cached + SwapCached + AnonPages

  • AnonPages

    = /proc/*/task/*/smaps anonymous area all sum (anonymous: no name|[heap]|/dev/zero|/dev/shm/*|[stack])

    Aunque no he podido igualar estos números. Mira here y ayúdame si tienes alguna pista.

  • Total de PageCache

    = Buffers + Cached + SwapCached

  • Losa

    = SReclaimable + SUnreclaim