У меня есть очень странная проблема, которую мне нелегко диагностировать относительно первопричины.
У меня есть Mac Pro (2008, 2,8 ГГц с 8 ядрами, 8800GT) с 14 ГБ RAM (недавно обновленный из-за этой проблемы!).
Когда я загружу свою систему и вхожу в систему, vm_stat / вершина / Монитор Действия покажет, что kernel_task выделили приблизительно 150 МБ, и машина имеет приблизительно 800 МБ Проводной выделяемой памяти.
Даже первоначально, 800 МБ кажется очень большой проводной памятью, которая будет выделена без выполнения приложений - но, это ухудшается. (Проводной NB: заблокирован, невыгружаемая память),
После очень короткого времени, иногда инициированного чем-то столь же простым как запуск терминала, kernel_task увеличится к 8-900 МБ Настоящей Мадам (RSIZE), и Проводная Память ускорится к 1,6 ГБ (допущение, что все запросы дополнительной памяти для проводной RAM в ядре).
Если я вышел из всего (Т.Е.: никакие запущенные приложения, запретите монитор действия или терминал для просмотра вершины), нет никакого заметного сокращения или kernel_task RSIZE или Проводного Использования памяти. Хождение противоположным путем и загрузка системы с задачами также показывают, что проводная память не становится уменьшенной - и что значительно это не уменьшается в предпочтении к тяжелому свопингу.
Если я выхожу из системы и вхожу в снова, это уменьшает немного (450 МБ kernel_task, Проводные 1,28 ГБ), но не назад к запуску.
Я не выполняю дурацкого kexts - и кроме того, kextstat не показывает огромных выделений памяти там; крупнейшее существо com.apple.nvidia.nv50hal на уровне приблизительно 4 МБ Памяти.
Машина чувствует себя в целом более вялой, когда это произошло - неудивительно, потому что такая огромная сумма RAM была отмечена как нелистаемая.
Таким образом, у меня есть несколько вопросов:
1) Существует ли хороший способ диагностировать то, что выделило всю эту проводную память? Это часто - более чем 2 раза kernel_task размер, не запуская приложений. Общее количество реальной памяти, кажется, не складывает - кажется, что существует набор RAM, которая не составляется нигде.
2) Что, оказывается, заставляет ядро внезапно требовать в 6 раз больше памяти?
Расширения ядра являются только одним из многих, многих, много фрагментов кода, которые могут быть выполнены операционной системой без Вашего ведома. У меня есть маленькая основанная на Python утилита, названная Консультантом, канарским, который поможет Вам найти довольно многих из них:
Если бы это не поднимает потенциальных преступников, то я сказал бы что начальная загрузка от чистой установки и видел бы, можно ли воспроизвести проблему там.