
Работа со Swap в Mac OS X
Я писал заметку о там как работать со swap-ом на Debian-о и RedHat подобных ОС. Но меня заинтересовало как обстоит дело на ОС Mac OS X. По умолчанию, файл подкачки имеется в системе. И как быть? Нужен он или все же нет?
Чтиво о чем уже говорилось и писалось:
Увеличить SWAP на Ubuntu/Debian/Mint
Добавить Swap в CentOS/Fedora/RedHat
Но а теперь я расскажу все за и против о файле подкачки в макосе.
Работа со Swap в Mac OS X
Файл подкачки (Swap)– это механизм для работы с виртуальной памятью. Основная задача заключается в том, чтобы неактивные фрагменты памяти перемещать из RAM прямо на жёсткий диск (в этот же файл подкачки — swap) для временного хранения. Это дает возможность освободить память для загрузки новых фрагментов памяти. При потребности этих фрагментов, система возвратит их обратно в RAM. Данный механизм, дает возможность использовать больше оперативной памяти чем имеется в ОС. Недостатком является то, что файл подкачки работает гораздо медленнее чем оперативная память. Все упирается в ограничение скорости работы жесткого диска.
Для того чтобы узнать сколько используется виртуальной памяти в Mac OS X, можно запустить утилиту — Мониторинг системы (Программы -> Утилиты). В ней можно наглядно посмотреть использование RAM, своп, загрузку, выгрузку страниц, а также объем свободной, зарезервированной, активной и неактивной памяти:

Мониторинг системы в MacOSX
Аналогичной утилитой является top/htop. Можно использовать и другие варианты, но суть статьи не в том.
Swap в Mac OS X помещается в папку /private/var/vm/ для хранения и использования данных:
┌(captain@Macbook)─(✓)─(06:17 PM Sun Feb 12) └─(~)─(21 files, 2152b)─> ls -lh /private/var/vm/ total 14680064 -rw------T 1 root wheel 1.0G Jan 30 02:01 sleepimage -rw------- 1 root wheel 1.0G Jan 23 11:43 swapfile0 -rw------- 1 root wheel 1.0G Jan 25 01:51 swapfile1 -rw------- 1 root wheel 1.0G Jan 27 19:24 swapfile2 -rw------- 1 root wheel 1.0G Feb 6 03:50 swapfile3 -rw------- 1 root wheel 1.0G Feb 8 17:08 swapfile4 -rw------- 1 root wheel 1.0G Feb 10 03:41 swapfile5 ┌(captain@Macbook)─(✓)─(06:17 PM Sun Feb 12) └─(~)─(21 files, 2152b)─>
Как видно с листинга, что файлы хранятся с именами — swapfile[0,1,..10….100..]. У меня, они имеют размер около 1Гб — как по мне — это очень большие данные. Ну ту такое 🙂 Я предполагаю что такой объем в файлах вызван долгой работой Mac OS X без перезагрузки:
┌(captain@Macbook)─(✓)─(06:30 PM Sun Feb 12) └─(~)─(21 files, 2152b)─> uptime 18:44 up 20 days, 7:05, 5 users, load averages: 1.91 1.87 1.83 ┌(captain@Macbook)─(✓)─(06:44 PM Sun Feb 12) └─(~)─(21 files, 1408b)─>
PS: Максимально что у меня было:
23:20 up 163 days, 19:46, 4 users, load averages: 2.60 2.35 2.38
И то, нужно было обновить ОС, т.к вышла мажорная версия.
Собственно для чего они там нужны? А в этой папке, сохраняются данные с RAM когда мак находится в режиме сна.
Отключение/Включение SWAP в Mac OS X
И так, начиная с Mac OS 9, в системе можно было выключать swap через системные настройки и тем самым позволяло ускорить работу мака. С выходом Mac OS 10 — ситуация изменилось вместе с архитектурой системы, которая построена на ядре unix и активно использует файлы для подкачки страниц и управления кешем.
Я сейчас расскажу как можно выключить файл подкачки в Mac OS X, но делать это нужно с уверенностью, т.к это может вызвать торможения мака. И Делать это можно, если на борту имеется хотя бы 8-16Гб RAM, а иначе вы можете получить проблемы с нехваткой памяти. Но с другой стороны, при отключенном swap может подняться продолжительность жизни SSD дисков.
Решать вам, стоит или не стоит отключать SWAP!
Отключение SWAP в Mac OS X
Чтобы выключить файл подкачки, используйте команду:
$ sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
Т.к свап был выключен, на диску имеется файлы который он использовал. Удалим их:
$ sudo rm -f /private/var/vm/swapfile*
PS: Я бы не рекомендовал просто так их удалять. Я бы создал копию всего диска через Time Machine, ну или хотя бы скопировал все swapfile в другую папку. Это позволит вернуть все на свои места.
По завершению, стоит выполнить перезагрузку ОС, из консоли можно выполнить:
$ sudo reboot
После перезагрузки смотрим как будет работать система.
Включить SWAP в Mac OS X
Если Вы все же выключили файл подкачки на Mac OS X, то для включения служит:
$ sudo launchctl load -wF /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
И снова перезапускаем ОС.
Выводы
Выключать swap не желательно. Я не проверял работоспособность. Основываюсь на опыте некоторых людей.
Как-то так, статья «Работа со Swap в Mac OS X» завершена.