Я использую OS X от нескольких месяцев (Lion и теперь Mountain Lion). У меня есть 8 ГБ на моем мини, и почти каждый день он приближается к этому. На Windows 7 с 8 ГБ у меня никогда не было таких проблем. Во всяком случае, я прочитал в сети, что неактивная память - это кэш приложений недавно закрытых программ, который можно использовать для более быстрого повторного открытия. И эта неактивная память может быть освобождена для нового приложения, если это необходимо. Это не выпущено. Вместо этого OS X начинает обмениваться. Итак, мой вопрос: почему OS X использует swap, когда много «неактивной памяти»? Вот экран, который показывает, что я имею в виду:
Я действительно надеюсь, что есть возможность заставить OS X использовать эти 2,69 ГБ до начала обмена. Я действительно это делаю.
Ответы:
Подмена, по-видимому, произошла, когда неактивные страницы ОЗУ были фактически активны
( Обновление: как было разъяснено в комментарии, это не ваш случай. Поэтому люди с такой же проблемой могут перейти к горизонтальному правилу .)
Т.е. у вас было запущено много программ и ядро выкачало некоторые страницы. Затем вы вышли из некоторых программ. Ядро помечает их страницы ОЗУ как неактивные. Но он не поменяет страницы обратно в оперативную память, пока эти страницы не понадобятся. Это приводит к наличию как неактивных, так и замененных страниц.
Почему бы не превентивно менять страницы? Потому что это будет пари против шансов: в долгосрочной перспективе вы проиграете. Давайте подумаем об упрощенном примере: две программы A и B, которые не помещаются в ОЗУ одновременно. Программа A все еще работает, и все выгруженные страницы принадлежат A. Программа B завершила работу, а все неактивные страницы принадлежат B.
Если ядро предварительно меняет страницы А и сразу после:
Также учтите, что замена (запись на диск) обходится дороже, чем замена (чтение с диска). Что делает эту «ставку» еще более непривлекательной.
Короче говоря: доверяйте своему ядру и не пытайтесь перехитрить его.
Обновление: выясняется, что неактивная память не работает, так как Использование Activity Monitor для чтения статьи System Memory заставило многих поверить, что она работает. В статье дано правильное определение неактивной памяти:
Но следующий пример полностью вводит в заблуждение и чрезмерно упрощает (как мой пример, чтобы быть откровенным):
Я искал больше онлайн-ресурсов и попал в эту ветку в списке рассылки ядра darwin, который достаточно информативен. Цитирую Джима Маги (из команды Дарвина - я думаю):
Это объясняет поведение, которое вы наблюдаете. Т.е. неактивные страницы, которые вы видите, принадлежат запущенным программам, которые недавно не использовались. Поэтому, когда вы запускаете новую программу, неактивные страницы заменяются. В то же время страницы из других программ помечаются как неактивные, чтобы поддерживать соотношение 2: 1 к активным и неактивным.
В ветке также содержатся некоторые предложения, чтобы узнать больше о внутренностях Дарвина. Есть также некоторые предложения на случай, если вы начали исследовать использование памяти из-за проблем с пляжным мячом (которые обычно не имеют к этому никакого отношения).
Вывод остается прежним: доверяйте своему ядру и не пытайтесь перехитрить его. :-)
источник
Вы можете безопасно отключить пейджинг, если у вас достаточно оперативной памяти.
Попробуйте эти команды.
Затем перезапустите и убедитесь, что процесс dynamic_pager больше не работает.
Убедитесь, что файлы подкачки не были созданы в
/private/var/vm/
.Для повторного включения попробуйте следующие команды:
Вы также можете отключить Spotlight, чтобы освободить больше памяти и снизить активность диска. Следующие команды используются для отключения и включения Spotlight.
источник
Там не так много, вы можете сделать. Почему это так? Потому что это как OS X работает. Интересная часть - то, как занятая память увеличивается с каждым сном, который получает Mac.
Что ты можешь сделать:
источник
Система работает как задумано. Даже если нет недостатка памяти, имеет смысл написать некоторые страницы, которые нельзя удалить, но которые недавно не использовались для подкачки, когда система не занята. Таким образом, если позже возникает нагрузка на память, эти страницы могут быть извлечены из ОЗУ без необходимости сначала записывать их для подкачки, когда система занята.
источник