2. Параметры vm.memory.size

Обзор

В этом разделе представлены некоторые подробности относительно элемента данных vm.memory.size[<режим>] агента Zabbix.

Параметры

В этом элементе данных разрешены следующие параметры:

  • active - память, используемая в данный момент или бывшвая в использовании совсем недавно, и поэтому ещё находится в RAM.
  • anon - память, не связанная с файлами (повторное чтение из них невозможно).
  • available - доступная память, вычисляется по-разному в зависимости от платформы (смотрите таблицу ниже).
  • buffers - кэш для таких вещей, как метаданные файловой системы.
  • cached - кэш для различных вещей.
  • exec - исполняемый код, в основном из (программ) файлов.
  • file - кэш содержимого недавно использованных файлов.
  • free - память, которая доступна без каких-либо проблем любому объекту, запрашивающему память.
  • inactive - память, помеченная как неиспользуемая.
  • pavailable - 'available' память в процентах по отношению к 'total' (рассчитывается как available/total*100).
  • pinned - то же, что и 'wired'.
  • pused - 'used' память в процентах по отношению к 'total' (рассчитывается как used/total*100).
  • shared - память, которая может быть доступна сразу нескольким процессам.
  • slab - общий объем памяти, которая используется ядром для кэширования структур данных для собственного использования.
  • total - общий объем доступной физической памяти.
  • used - используемая память, вычисляется по-разному в зависимости от платформы (смотри таблицу ниже).
  • wired - память, помеченная всегда оставаться в RAM. Она не может быть перемещена на диск.

Некоторые из этих параметров работают только для конкретных платформ и могут быть недоступны на вашей платформе. См. Поддерживаемые элементы данных по платформам.

Вычисления available и used в зависимости от платформы:

Платформа "available" "used"
AIX free + cached реальное использование памяти
FreeBSD inactive + cached + free active + wired + cached
HP UX free total - free
Linux<3.14 free + buffers + cached total - free
Linux 3.14+
(также перенесено для 3.10 на RHEL 7)
/proc/meminfo, см. описание "MemAvailable" в документации ядра Linux [en].
Обратите внимание, что free + buffers + cached больше не равняется 'available', так как не весь кэш страницы может быть освобождён и в расчетах используется минимальный объем свободной памяти, зарезервированной системой (low watermark).
total - free
NetBSD inactive + execpages + file + free total - free
OpenBSD inactive + free + cached active + wired
OSX inactive + free active + wired
Solaris free total - free
Win32 free total - free

Сумма vm.memory.size[used] и vm.memory.size[available] не обязательно равна общему количеству памяти. Например, для FreeBSD:
* Активная, неактивная, wired, кэшируемая памяти считаются использованными, так как содержат некоторую полезную информацию.
* В то же время неактивная, кэшируемая, свободная памяти считаются доступными, так как такая память может быть незамедлительно освобождена процессу, который запросил больше памяти.

Таким образом, неактивная память помечается и как занятая, так и как свободная одновременно. Из-за этого элемент данных vm.memory.size[used] задумывался исключительно в информационных целях, тогда как элемент данных vm.memory.size[available] предназначен для использования в триггерах.

Смотрите также

  1. Дополнительная информация о вычислении памяти на разных ОС [en]