Mongol

frantsouzov

Навстречу приключениям!

Журнал про наши путешествия


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

Мой рабочий компьютер - 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.

  • 1
Я помню, что у меня были как раз проблемы с kingston KVR, которые закончились очень долгим ремонтом (замена материнки) — http://community.livejournal.com/ru_mac/7864294.html
Надеюсь, что тебя пронесёт, но в ру_маке не рекомендуют её ставить.

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

странная реакция на проблемную память, уж больно как-то деффектом в видео попахивает.

Еще SSD воткни и будет совсем самолет, проверено :)

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

Есть еще маза с SSD овер firewire-крэдл
результат тоже крутой

firewire уже занят винтом под фильмы! :) Но как вариант - подумаю! :)

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

Ну, технический прогресс не стоит на месте! В каждом обновлении что-то интересное присутствует! Тем более, это такой компьютер, который не на месяц и не на полгода себе выбираешь!

а в что будет если в sleep увести?

Думаю, что ничего не будет, просто заснет. А что должно быть-то? :)

не знаю...

попробовал сегодня этот метод на работе — 30 минут работы, пара psd открытых и всё висит :( 4 Гб явно мало

мак мини с 2 Гб оперативы подвешивается через час-полтора активного серфинга (одновременно открыто 30+ вкладок в хроме, в т.ч. с видео роликами), параллельно работают адиум, скайп и по мелочи еще. за сегодняшнее утро 2 раза висел

Хороший метод.
Сам только воткнул в макбук 8 гигов, теперь доволен как слон=)

Кстати, как iPhoto на iMac такую большую базу пережевывает? Гладко работает или все-таки притормаживает?

Рад, что информация пригодилась! Сам пару месяцев тоже довольный, как слон! :)
iPhoto пережевывает нормальный. Грузится только относительно долго (7-10 секунд), а потом работает довольно шустро.

Я про отключение свопа на маках прочитал где-то несколько недель назад, только там далеко не так красочно были расписаны пару команд в терминале. А тут в лучших традициях вашего журнала=) Но с 8 Гб надобность в этом отпала, почти всегда есть ощутимый запас.

Да, видимо надо себе тоже брать iMac, лэптопа не всегда хватает...

Спасибо, постарался донести информацию наиболее наглядным способом! :)

Хе, когда стану маководом, мне это пригодится :)

Будем надеяться, что это произойдет поскорее! :)

странно
а у меня и без щаманства свап = 0
пробовал наоткрывать вкладок и файлов в ФШ, все равно 0
в новом lion его отключили сразу чтоли?
появился только при остатке в 700 мег... :))

Не отключили, просто он видимо работает так, как и должен работать - появляется только при недостатке оперативной памяти.

ну да, неверно выразился

  • 1
?

Log in

No account? Create an account