stunpix

Персональный бортжурнал

Отключение файла подкачки в Mac OS X

Эта заметка о том почему отключать файл подкачки (или swap файл) в mac os x - это плохо. Где-то год назад я купил 16Гб памяти в свой мак и решил, что "уж теперь-то файл подкачки мне точно не нужен". Решил я это сам по себе, а некоторые непорядочные статьи в сети подбадривали "это хорошо и улучшает производительность". Так вот, это не то что "не хорошо", а очень даже плохо.

Итак, после установки новой памяти и отключения swap файла, через какое-то время я начал наблюдать ужасы после выхода мака из сна наподобии этого:

Это было на версии системы 10.7. С переходом на 10.8 проблема изменилась на другую - мак выходя из гибернации (когда батарея разрядилась в ноль и память сбрасывается на диск чтобы отключить питание) я получал зависание и 3 гудка. Причём только при выходе из hibernate. При выходе из обычного сна всё было окей.

Я озадачился этой проблемой и в первую очередь начал грешить на купленную память. Я делал разные тесты, искал в сети ответ, но тщетно. Разные форумы что-то говорили, но это было всё не то. Недавно я нашёл статью, в которой говорилось, что это проблема с файлом гибернации sleepimage. Предлагалось его удалить и пересоздать. Я в это не верил особо, но попробовал. Результат был нулевой.

Решение было найдено, когда на одном закрытом форуме такой же бедолага как и я выплеснул своё отчаяние по поводу этой проблемы. В одном из коментариев лаконично и коротко сказали - "включи файл подкачки". Я последовал совету и включил swap командой:

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist

После этого всё заработало просто великолепно.

Выводы

Выключать свап нельзя. По всей вероятности, swap используется для сохранения каких-то данных перед погружением в hibernate. При попытке выйти из сна данные в свап файле не находится и начинаются интересные приколы вплоть за зависания с 3-мя гудками. По этой причине я даже не даю совета как отключить swap, а только как включить.

Коментарии