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

Обзор

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

Параметры

Для этого элемента данных доступны следующие параметры:

  • 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. Она никогда не перемещается на диск.

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

Специфичный для платформы расчёт available и used:

Platform "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" в documentation ядра Linux.
Обратите внимание, что free + buffers + cached больше не равно 'available', поскольку не весь кэш страниц может быть освобождён, и в расчёте используется нижняя граница 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] не обязательно равна total. Например, в FreeBSD:
* Память active, inactive, wired, cached считается используемой, потому что в ней хранится некоторая полезная информация.
* В то же время память inactive, cached, free считается доступной, потому что эти виды памяти могут быть немедленно предоставлены процессам, запрашивающим больше памяти.

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

См. также

  1. Дополнительные сведения о расчете памяти в различных ОС