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

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

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

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

Некоторые из этих параметров работают только для конкретных платформ.

Вычисления available и used в зависимости от платформы приведены в таблице 36.

Примечание – Сумма vm.memory.sizeused и vm.memory.sizeavailable не обязательно равна общему количеству памяти.

Например, для FreeBSD:

  • активная, неактивная, wired, кэшируемая памяти считаются использованными, так как содержат некоторую полезную информацию;
  • неактивная, кэшируемая, свободная памяти считаются доступными, так как такая память может быть незамедлительно освобождена процессу, который запросил больше памяти.

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