Могу ли я заставить свой Mac лучше использовать неактивную память?

15

Я использую mysql, и это занимает до 2,5 ГБ моего оперативной памяти. Я проверил монитор активности и увидел, что у меня 1 ГБ неактивной памяти, но она никогда не меняется, даже если у меня только 10 МБ активной свободной памяти. Есть ли способ заставить неактивную память использоваться?

AliBZ
источник

Ответы:

18

Вы можете думать о неактивной памяти, как о свободной памяти, которая была зарезервирована для недавно закрытого приложения, но готова к использованию другими пользователями, когда «действительно» свободная память была исчерпана. Если у вас есть 1 ГБ памяти (для облегчения этой дискуссии) в недавно загруженной системе, представьте, что ОС использует 300 МБ, и вы открываете приложение, которое использует 200 МБ. Теперь у вас есть 500 МБ и 500 бесплатно. Если вы закроете приложение, которое использовало 200 МБ, память будет помечена как неактивная, и теперь у вас будет 300 используемых (ОС), 200 неактивных и 500 свободных. Если вы откроете приложение, которому требуется 600 МБ, оно будет использовать свободную память, а затем извлекать данные из неактивного пула.

Вы можете освободить неактивную память, открыв Terminal.app и набрав (без $):

 $ purge

Вы также можете настроить MySQL для использования большего объема памяти, но если у вас нет проблем с производительностью, я бы оставил все в покое:

Для получения дополнительной информации о неактивной памяти в OS X:

Озеро Аарон
источник
Спасибо за ваш ответ, но моя проблема в том, что моя система работает очень медленно, но не использует неактивную память.
AliBZ
Я исправил себя, можно очистить неактивную память (упс!), Посмотреть обновленный ответ. Кроме того, звучит так, будто у вас что-то еще происходит. Вы используете какие-либо виртуальные машины? Много открытых приложений? Вы уверены, что это проблема с памятью? Может быть, узкое место процессора? Дисковый ввод / вывод?
Аарон Лэйк
Я бегу MySQL с огромными запросами. У меня нет других запущенных приложений.
AliBZ
@AliBZ: моя система работает очень медленно, но не использует неактивную память : система может работать медленно и из-за использования процессора. Вы это проверяли?
Нивас
Это очень хороший теоретический взгляд на систему, как и утверждает Apple. Но у меня тот же pb, что и у OP, и он purgeзамораживает свою систему на несколько секунд и ничего не делает ... по крайней мере, в отношении неактивной памяти pb). И да, моя система тоже обменивается, хотя у меня должно быть более 1 ГБ свободной памяти.
PierreBdR
0

Чтобы расширить ответ Аарона:

В вашем случае может быть проблема с MySQL, требующей слишком много ресурсов, но Inactive Memory - это как Free Memory для операционной системы. Разница между Inactive и Free заключается в том, что Inactive недавно использовался, поэтому, если, например, вы открываете iTunes и он использует 200 МБ, при закрытии программа закрывается, память iTunes помечается как неактивная, но остается такой, если только она не требуется. снова . Но если вам случится повторно открыть iTunes, OS X знает, что он уже там и неактивен, поэтому он помечает его как снова активный и вуаля, что было быстрее, чем необходимость перезагрузить его с более медленного жесткого диска.

Предоставьте больше информации о вашем компьютере, чтобы найти причину вашей "медленной" системы.

обновление : вот больше информации о памяти и OS X (от Apple):

http://support.apple.com/kb/ht1342

Мартин Маркончини
источник
например, у меня есть это в моем мониторе активности: mysqld -> 2,2 ГБ oovoo -> 190 МБ ядро ​​-> 150 МБ Firefox -> 148 МБ и другие приложения. У меня 26 МБ свободной памяти и 1 ГБ неактивной памяти, и моя система сейчас работает немного медленно, но моя неактивная память не меняется.
AliBZ
@AliBZ: Количество восстанавливаемых свопов в Мониторе активности увеличивается? Это лучший из известных мне индикаторов того, что в системе действительно недостаточно оперативной памяти (и приходится выгружать содержимое памяти на диск, чтобы освободить место). Обратите внимание, что «Page ins» не является полезным индикатором, так как он будет подниматься каждый раз, когда программа запускается с диска (если только она не находится в неактивной ОЗУ).
Гордон Дэвиссон