Французов Денис (frantsouzov) wrote,
Французов Денис
frantsouzov

Category:

Ускорение работы Mac OS X путем отключения Swap-файла


Мой рабочий компьютер - iMac (модель 11,1) на базе процессора Core i5. Изначально на борту было установлено 4Гб оперативной памяти (две планки по 2Гб).

Как и многие маководы, я не выключаю компьютер месяцами. Однако со временем начал замечать, что после перезагрузки системы вначале все просто летает, приложения открываются мгновенно, но через некоторое время программы начинают ощутимо тормозить. Особенно это заметно при переключении на программу, которой относительно давно не пользовался (но при этом она работает в фоне). При этом подвисания системы сопровождаются весьма интенсивной работой жесткого диска.

В общем, как я понял, проблема возникает из-за использования своп-файла.


Для тех, кто не знает, что это такое - объясню вкратце.

У системы есть весьма быстрая оперативная память, но она ограничена (в моем случае - 4 Гб), а также место на жестком диске, которого, как правило, весьма много по сравнению с оперативной памятью, но скорость чтения-записи для жесткого диска в тысячи раз медленнее, чем для оперативной памяти.

В общем, операционная система поступает достаточно просто. Когда она считает, что оперативной памяти становится мало - она берет часть данных оттуда (грубо говоря, принадлежащих программе, которая запущена, но которой вы относительно давно не пользовались) и записывает их на жесткий диск в так называемый своп-файл.

Когда программа вдруг снова становится нужна (допустим, вы переключились в iPhoto, которая давным-давно просто висит в фоне) - операционка вновь пытается освободить достаточное количество оперативной памяти (перенося в своп данные о каких-либо других программах), а после этого - перенести данные нашего iPhoto из своп-файла в оперативную память.

Это сопровождается обращениями на чтение-запись к жесткому диску, который, как я уже упоминал, работает намного медленнее, чем оперативка - соответственно, отсюда и возникают сильные тормоза при переключениях между программами и работе системы в целом.

Так вот, в Mac OS X файл подкачки (своп) почему-то начинает использоваться задолго до того, как кончается свободная память. Вроде бы оперативки еще много - а все равно система начинает подтормаживать. Причем даже установка дополнительных модулей памяти проблемы не решает - своп все равно продолжает активно использоваться.

Ладно, в теории все понятно, теперь о том, как от этого избавиться.


Открываем Терминал (Программы - Служебные Программы - Терминал).

По очереди копируем и вставляем туда две строчки, затем нажимаем Enter. Возможно, потребуется ввести пароль администратора (при вводе пароля убедитесь, что включена английская раскладка клавиатуры; вводимые символы пароля не отображаются).

Первая команда отключает использование своп-файлов:
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist

Вторая команда удаляет своп-файлы из системного каталога для освобождения места на диске:
sudo rm /private/var/vm/swapfile*

По сути, для пользователя своп-файлы являются обычным "мусором", их содержимое никакой ценности не представляет. Если вдруг вы решите включить механизм своппинга обратно (об этом чуть ниже), то система просто автоматически создаст новые файлы.

После выполнения этих команд нужно будет перезагрузить компьютер.


После перезагрузки открываем Мониторинг Системы (находится в той же папке "Служебные Программы", что и Терминал).

1) Убеждаемся, что процесс dynamic_pager не запущен, т.е. отсутствует в списке.
2) В нижней части окна выбираем вкладку "Системная память". Напротив надписи "Использование swap" должно стоять "0 байт" - как на снимке экрана. Это значит, что механизм своппинга памяти отключен.
3) Наслаждаемся значительно возросшим быстродействием системы, так как при работе она не перекидывает туда-сюда содержимое оперативной памяти на жесткий диск!

В теории, когда количество "зарезервированной" памяти сравняется с общим количеством установленной оперативной памяти, система просто-напросто зависнет, и ее понадобится перезагрузить.

На практике же я открывал одновременно около 100 вкладок в Сафари, 150-гиговую библиотеку iPhoto, Adobe Lightroom, несколько документов в Pages и Numbers, проект в iMovie, iTunes, фильм FullHD в VLC Player и еще кучу всякой мелочевки вроде Adium и Transmission - все это одновременно так и не смогло сожрать все 4Гб оперативки и подвесить систему, однако при этом программы запускались и работали весьма и весьма шустро. В повседневных же делах я редко использую все эти программы одновременно.


Однако на момент "экспериментов" со своппингом я уже заказал два модуля памяти по 4Гб каждый в каком-то из интернет-магазинов. Обошлось все удовольствие чуть больше 3000 рублей - совсем небольшая сумма для ежедневной комфортной работы.


Ну а когда устанавливал новые планки памяти - случайно узнал, что у моего компьютера оказывается не 2, а 4 гнезда под оперативку! Таким образом, после прироста общее количество памяти составило 12Гб!


Подводя итоги.
На снимке экрана - окна запущенных приложений. 68 вкладок в Сафари, iPhoto, Lightroom, Google Earth, Quicktime, Office - сами видите, что в доке иконок много. Компьютер последний раз перезагружал несколько недель назад (устанавливал какие-то обновления). Своп-файл отключен уже пару месяцев как - и все это время полет нормальный, ничего не виснет и не вылетает.

По сравнению с тем, что было - просто небо и земля по скорости работы!

Если вдруг понадобится вернуть все обратно - копируем в Терминал следующую команду и перезагружаемся:
sudo launchctl load -wF /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
Своп-файл при загрузке будет создан автоматически.

В общем, получившимся результатом я весьма доволен, и, возможно, кому-то эта статья окажется полезной, так что, как говорится - делюсь опытом! :)

За основу был взят материал по ссылке: http://snupt.com/?p=2529.
Tags: 2011, Делюсь опытом, Эппл
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 21 comments