Как vm.memory_pressure
значение ограничено / рассчитано в OS X 10.10.2 - Yosemite?
Я исследовал несколько ответов на этот вопрос и пробую несколько вещей в командной строке, чтобы получить точные значения, а не смотреть графики в Activity Monitor.
С системой под небольшой нагрузкой:
~ ❯❯❯ sysctl -a vm | grep page_free && sysctl vm.memory_pressure && sysctl kern.memorystatus_vm_pressure_level
vm.vm_page_free_target: 4000
vm.page_free_wanted: 0
vm.page_free_count: 2683717
vm.memory_pressure: 0
kern.memorystatus_vm_pressure_level: 1
Kern.memorystatus_vm_pressure_level выглядит правильно и, по-видимому, используется для окрашивания графика (зеленый для 1-NORMAL, желтый для 2-WARN, красный для 4-CRITICAL). Тем не менее, vm.memory_pressure равно 0, и на графике есть некоторое количество зеленого, и оно зазубрено, что означает, что значение явно меняется со временем, а не просто сидит в 0.
Под большой нагрузкой это выглядит так:
❯❯❯ sysctl -a vm | grep page_free && sysctl vm.memory_pressure && sysctl kern.memorystatus_vm_pressure_level
vm.vm_page_free_target: 4000
vm.page_free_wanted: 0
vm.page_free_count: 32572
vm.memory_pressure: 1693
kern.memorystatus_vm_pressure_level: 4
Или это...
~ ❯❯❯ sysctl -a vm | grep page_free && sysctl vm.memory_pressure && sysctl kern.memorystatus_vm_pressure_level
vm.vm_page_free_target: 4000
vm.page_free_wanted: 0
vm.page_free_count: 5431
vm.memory_pressure: 277
kern.memorystatus_vm_pressure_level: 4
Или это...
~ ❯❯❯ sysctl -a vm | grep page_free && sysctl vm.memory_pressure && sysctl kern.memorystatus_vm_pressure_level
vm.vm_page_free_target: 4000
vm.page_free_wanted: 3220
vm.page_free_count: 805
vm.memory_pressure: 1
kern.memorystatus_vm_pressure_level: 4
Вот где я запутался. Ни одно из этих значений не может быть значением Y графика по нескольким причинам.
Во-первых, vm.memory_pressure просто находится в 0 почти все время при нормальной нагрузке, а график не сидит в 0.
Во-вторых, они не соответствуют друг другу. Если посмотреть на значение memory_pressure, оно ниже, когда ему действительно нужны страницы (3220 разыскиваемых и давление только 1), чем когда у него было 5431 свободное и ни одного разыскиваемого (давление было 277). И почему-то это даже более низкое давление, чем когда у него было 32572 свободных (и было 1693 давления).
Итак, когда он строит этот график, как рассчитывается значение Y и как я могу получить данные, необходимые для его вычисления из командной строки? Я хочу создать инструмент командной строки, который будет отображать процент от высоты текущей строки на этом графике, поэтому мне нужно знать, как рассчитать значение в любой момент времени, а также каков диапазон значений. Возможные значения
источник
Ответы:
В настоящее время это только частичный ответ. Этот ответ не завершен, пока это предложение не будет удалено.
Суть этого вопроса в том, что график давления памяти не имеет смысла, если сравнивать его с тем, что сообщается в терминале, при использовании команды, описанной в OP:
Однако проблема в том, что эта команда ограничивает значения vm, о которых она сообщает. На самом деле всего 105 значений, но эта команда сообщает только о следующих пяти значениях:
ПРИМЕЧАНИЕ. Числовые значения обычно появляются после двоеточия (:), однако я не включил их.
Очевидно, что подавляющее большинство значений 105 vm не являются частью фактического расчета, который определяет нагрузку на память, но проблема здесь заключается в том, что пять приведенных выше значений не являются единственными, используемыми для вычисления давления в памяти .
Например, хотя вышеприведенный вывод предоставляет некоторые из различных свободных значений, он не предоставляет никаких неактивных значений и т. Д.
Эти значения важны, потому что алгоритм давления памяти вычисляет соотношение между этими значениями, и связь между этими значениями не очевидна из результатов, полученных командой в вопросе OP.
Я думаю, что у меня есть некоторая техническая информация, которая может пролить больше света на это. Я буду обновлять этот ответ в любом случае в течение недели.
[ОБНОВЛЕНИЕ СТАТУСА]
Я не смог найти техническую информацию, которую искал. Тем не менее, я вполне уверен, что у меня все еще есть - вероятно, на некоторых старых резервных копий CDR / DVDR. Я обновлю этот ответ, как только найду его, или когда буду уверен, что не найду его.
источник