Как стать автором
Обновить
834.72
OTUS
Цифровые навыки от ведущих экспертов

Интерпретация /proc/meminfo и вывода free для Red Hat Enterprise Linux

Время на прочтение 6 мин
Количество просмотров 7.7K
Автор оригинала: access.redhat.com

Среда 

  • Red Hat Enterprise Linux (RHEL) 5

  • Red Hat Enterprise Linux (RHEL) 6

  • Red Hat Enterprise Linux (RHEL) 7

  • Red Hat Enterprise Linux (RHEL) 8

Вопрос

Мне нужна интерпретация вывода /proc/meminfo.

Я хочу сравнить вывод free -k с cat /proc/meminfo

Решение

Сравнение вывода

  • вывод free -k (RHEL 5 и RHEL 6):

          total       used       free     shared    buffers     cached
Mem:       7778104    2971960    4806144          0     211756    1071092
-/+ buffers/cache:    1689112    6088992
Swap:      4194296          0    4194296
  • вывод free -k (RHEL 7/8):

              total        used        free      shared  buff/cache   available
Mem:        1012952      252740      158732       11108      601480      543584
Swap:       1048572        5380     1043192
  • Соответствующие поля из /proc/meminfo, чтобы сопоставить их с выводом free -k:

MemTotal:        7778104 kB
MemFree:         4806144 kB
Buffers:          211756 kB
Cached:          1071092 kB
SwapTotal:       4194296 kB
SwapFree:        4194296 kB
  • В RHEL 7/8 доступно дополнительное поле, которое используется вместо расчета для линии -/+ buffers/cache :

MemAvailable:     543584 kB

Сопоставление вывода free -k с /proc/meminfo

В следующей таблице показано, как получить вывод free, сопоставленный с полями /proc/meminfo в Red Hat Enterprise Linux 5, 6 и 7/8.

вывод free

соответствующие поля /proc/meminfo

Mem: total

MemTotal

Mem: used

MemTotal - MemFree

Mem: free

MemFree

Mem: shared  (в настоящее время можно игнорировать, это не имеет никакого значения).

N/A (не доступно)

Mem: buffers

Buffers

Mem: cached

Cached

-/+ buffers/cache: used

MemTotal - (MemFree + Buffers + Cached)

-/+ buffers/cache: free

MemFree + Buffers + Cached

Swap: total

SwapTotal

Swap: used

SwapTotal - SwapFree

Swap: free

SwapFree

В следующей таблице показано, как получить вывод free, соответствующий полям /proc/meminfo в Red Hat Enterprise Linux 7.1 или более поздней версии (procps-ng 3.3.10).

вывод free

соответствующие поля /proc/meminfo

Mem: total

MemTotal

Mem: used

MemTotal - MemFree - Buffers - Cached - Slab

Mem: free

MemFree

Mem: shared

Shmem

Mem: buff/cache

Buffers + Cached + Slab

Mem:available

MemAvailable

Swap: total

SwapTotal

Swap: used

SwapTotal - SwapFree

Swap: free

SwapFree

Коренная причина

  • Анализ потребления памяти

Шаги диагностики

Большая часть материала взята из документации по ядру (Documentation/filesystems/proc.txt и Documentation/vm/hugetlbpage.txt)

Статистика высокого уровня

RHEL 5, RHEL 6 и RHEL 7/8

  • MemTotal: Общий объем используемой памяти

  • MemFree: Объем физической памяти, не используемой системой

  • Buffers: Память в буферном кэше, то есть относительно временное хранилище для необработанных блоков диска. Она не должна быть очень большой.

  • Cached: Память в страничном кэше (pagecache) (дисковый кэш и общая память).

  • SwapCached: Память, которая присутствует внутри основной, а также в файле подкачки. (Если память станет необходима, то эту область не нужно выгружать СНОВА, поскольку она уже находится в файле подкачки. Это экономит ввод-вывод и повышает производительность, в случае если машине не хватает памяти).

Только RHEL 7

  • MemAvailable: Оценка того, сколько памяти доступно для запуска новых приложений без свопинга.

    • Дополнительную информацию о MemAvailable можно найти здесь.

Подробная статистика уровня

RHEL 5, RHEL 6 и RHEL 7/8

  • Active: Память, которая использовалась недавно и обычно не выгружается и не высвобождается

  • Inactive: Память, которая не использовалась в последнее время и может быть выгружена или высвобождена.

Только для RHEL 6 и RHEL 7/8

  • Active(anon): Анонимная память, которая использовалась в последнее время и обычно не выгружается.

  • Inactive(anon): Анонимная память, которая не использовалась в последнее время и может быть выгружена.

  • Active(file): Память Pagecache, которая использовалась в последнее время и обычно не освобождается до тех пор, пока не понадобится.

  • Inactive(file): Память Pagecache, которая может быть высвобождена без существенного влияния на производительность

  • Unevictable: Неизвлекаемые страницы не могут быть выгружены по ряду причин.

  • Mlocked: Страницы, заблокированные в памяти с помощью системного вызова mlock(). Заблокированные страницы также являются Неизвлекаемыми.

Статистика памяти

RHEL 5, RHEL 6 и RHEL 7/8

  • SwapTotal: Общее доступное пространство свопа.

  • SwapFree: Оставшееся доступное пространство свопа.

  • Dirty: Память, ожидающая записи на диск

  • Writeback: Память, которая активно записывается на диск

  • AnonPages: Нефайловые поддерживаемые страницы, отображенные в таблицах страниц пользовательского пространства

  • Mapped: Файлы, которые были отображены, например, библиотеки.

  • Slab: Кэш структур данных внутри ядра

  • PageTables: Объем памяти, отведенный под самый нижний уровень таблиц страниц. Этот параметр может увеличиться до высокого значения, если много процессов подключено к одному и тому же сегменту общей памяти.

  • NFS_Unstable: Страницы NFS, отправленные на сервер, но еще не зафиксированные в хранилище.

  • Bounce: Память, используемая для bounce buffers блочных устройств

  • CommitLimit: Исходя из коэффициента избыточного выделения памяти (vm.overcommit_ratio), это общий объем памяти, который в настоящее время может быть выделен в системе. Этот лимит соблюдается только в том случае, если включен строгий учет оверкоммита (режим 2 в vm.overcommit_memory).

  • Committed_AS: Объем памяти, выделенной в настоящее время в системе. Committed memory (переданная память) - это сумма всей памяти, которая была выделена процессами, даже если она еще не была ими "использована".

  • VmallocTotal: общий размер области памяти vmalloc.

  • VmallocUsed: объем области vmalloc, которая используется

  • VmallocChunk: самый большой непрерывный блок области vmalloc, который свободен

  • HugePages_Total: количество огромных страниц, выделяемых ядром (Определяется с помощью vm.nr_hugepages)

  • HugePages_Free: Количество огромных страниц, не выделяемых процессом.

  • HugePages_Rsvd: Количество огромных страниц, для которых было принято обязательство о выделении из резервного пула, но выделение еще не было произведено.

  • Hugepagesize: Размер hugepage (обычно 2 МБ в системе на базе Intel).

Только для RHEL 6 и RHEL 7/8

  • Shmem: Полное количество используемой общей памяти (совместно используемая несколькими процессами, включая RAM-диски, SYS-V-IPC и BSD, такие как SHMEM)

  • SReclaimable: Часть Slab, которая может быть высвобождена (например, кэш).

  • SUnreclaim: часть Slab, которая не может быть высвобождена под давлением памяти.

  • KernelStack: Память, используемая стеком ядра. Она не подлежит высвобождению.

  • WritebackTmp: Память, используемая FUSE для временных буферов обратной записи.

  • HardwareCorrupted: Объем оперативной памяти, которую ядро определило как поврежденную/нерабочую.

  • AnonHugePages: Нефайловые огромные страницы, отображенные в таблицы страниц пользовательского пространства.

  • HugePages_Surp: Количество огромных страниц в пуле, превышающее значение в vm.nr_hugepages. Максимальное количество лишних огромных страниц контролируется vm.nr_overcommit_hugepages.

  • DirectMap4k: Объем памяти, используемой для отображения стандартных 4k страниц.

  • DirectMap2M: объем памяти, используемой для отображения hugepages (обычно размером 2 МБ).

  • DirectMap1G. Объем памяти, используемой для отображения hugepages (обычно размером 1 ГБ).

Примечание для DirectMap1G: Это значение будет доступно в /proc/meminfo только при условии, что соответствующее оборудование процессора поддерживает его. Вы можете убедиться в этом, проверив наличие флага 'pdpe1gb' в /proc/cpuinfo.

Данное исследование является частью программы ускоренной публикации Red Hat, предоставляющей огромную библиотеку решений, которые инженеры Red Hat подготовили в процессе оказания поддержки нашим клиентам. Чтобы предоставить вам необходимые знания сразу после их появления, эти статьи могут быть представлены в необработанном и неотредактированном виде.


Материал подготовлен в рамках специализации Administrator Linux.

Всех желающих приглашаем на открытый урок «Proxmox VE: настраиваем домашний сервер виртуализации». На занятии мы:
— обсудим существующие средства виртуализации;
— проведём сравнение ProxmoxVE с другими гипервизорами;
— установим, настроим и поработаем в ProxmoxVE.

→ РЕГИСТРАЦИЯ

Теги:
Хабы:
+8
Комментарии 3
Комментарии Комментарии 3

Публикации

Информация

Сайт
otus.ru
Дата регистрации
Дата основания
Численность
101–200 человек
Местоположение
Россия
Представитель
OTUS