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] предназначен для использования в триггерах.