Записи в/proc/meminfo
Я могу понять большую часть информации, содержащейся в /proc/meminfo, например, общую память, буферы, кеш и т.д. Не могли бы вы сказать мне, что менее очевидные, такие как перечисленные ниже, означают?
- AnonPages
- Подключенные
- Перекрытие
- NFS_Unstable
- Отказов
- VmallocTotal
- VmallocUsed
- VmallocChunk
Если кому-то интересно, я говорю о выходе команды linux cat/proc/meminfo
Ответы
Ответ 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 наибольший непрерывный блок памяти, в килобайт, доступных виртуальных адресное пространство.