Работа со Swap в Mac OS X

Работа со 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

Мониторинг системы в 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» завершена.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.