Подтвердить что ты не робот

Записи в/proc/meminfo

Я могу понять большую часть информации, содержащейся в /proc/meminfo, например, общую память, буферы, кеш и т.д. Не могли бы вы сказать мне, что менее очевидные, такие как перечисленные ниже, означают?

  • AnonPages
  • Подключенные
  • Перекрытие
  • NFS_Unstable
  • Отказов
  • VmallocTotal
  • VmallocUsed
  • VmallocChunk

Если кому-то интересно, я говорю о выходе команды linux cat/proc/meminfo

4b9b3361

Ответ 1

Канонический источник этой информации /usr/src/linux/Документация/файловые системы /proc.txt. В частности,

   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

Ответ 2

Мое понимание таково. И я согласен, что эти цифры трудно понять и показать несогласованные значения.

  • MemTotal

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

    Но последнее значение vmallocused для ядра может быть неправильным. Это связано с тем, что он учитывает области VM_xxx, такие как VM_IOREMAP, VM_MAP,... кроме области VM_ALLOC.

    Область VM_IOREMAP может быть отображением памяти, которая может находиться вне ядра управление памятью, поэтому приведенная выше формула может быть неточной или полностью неправильной.

    Вы можете:

    • Check/proc/vmallocinfo для сортировки всех записей и фильтрации самостоятельно,
    • Измените fs/proc/mmu.c: get_vmalloc_info(), чтобы подсчитывать регионы только тогда, когда if (флаги vma- > и VM_ALLOC)
  • Активный + Неактивный

     = Buffers + Cached + SwapCached + AnonPages
    
  • AnonPages

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

    Хотя я не смог сопоставить эти числа. Смотрите здесь и помогите мне, если у вас есть какие-либо подсказки.

  • Total PageCache

     = Buffers + Cached + SwapCached
    
  • Slab

     = SReclaimable + SUnreclaim
    

Ответ 3

От RedHat

VMallocTotal - общее количество памяти, в килобайтах, всего выделенное виртуальное адресное пространство. VMallocUsed - общее количество памяти, в килобайтах, используемого виртуального адресное пространство. VMallocChunk - The наибольший непрерывный блок памяти, в килобайт, доступных виртуальных адресное пространство.