Я наткнулся на тему об установке SSD-накопителя в MacBook Pro.
Кто-то в комментариях также рекомендовал отключить файл подкачки, но не сказал почему:
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
sudo rm /private/var/vm/swapfile*
Интересно, почему можно захотеть отключить файл подкачки в Mac OS X.
Повышает ли это производительность? Стабильность?
Есть минусы?
Наконец, имеет ли смысл отключать файл подкачки, когда не используется SSD?
Ответы:
Я полагаю, что люди будут делать это для SSD-накопителей, потому что срок их службы не такой же, как у стандартных магнитных вращающихся дисков. Существует более ограниченное количество циклов записи, поэтому, вероятно, использование их с файлом подкачки позволит быстрее использовать эти циклы.
Если у вас много оперативной памяти, это может повысить производительность, но в целом это не очень хорошая идея . Если вы наткнетесь на потолок памяти, все станет плохо.
Кроме того, проводная память не освобождается, когда она становится недействительной, она освобождается только при возникновении события выгрузки страницы, что не произойдет, если виртуальная память отключена. Таким образом, не займет много времени, чтобы вся ваша память была сожрена, даже если она больше не используется.
источник
Причина, по которой они отключили файл подкачки, - это, вероятно, паранойя о том, что SSD имеют максимальное количество записей на блок. Файлы подкачки могут часто записываться, что может привести к фрагментации диска (а также к фрагментации файловой системы) и, в конечном итоге, к преждевременному выходу диска из строя.
Тем не менее, это определенно случай преждевременной оптимизации. Почти всегда УЖАСНАЯ , УЖАСНАЯ идея отключить файл подкачки. Файл подкачки существует, когда ваши работающие программы потребляют больше памяти, чем вы физически установили. Если вы отключите его, возможно, вы не сможете запустить столько программ одновременно (а предел намного ниже, чем вы ожидаете), либо у вас могут возникнуть проблемы (например, зависание и перезагрузка компьютера) вам не хватает памяти.
Последнее я испытал (с включенным файлом подкачки) при нехватке места на диске. У меня был диск на 120 гигов с ~ 3 концертами бесплатно. Во время игры в Civilization IV (большая полноэкранная игра) системе не хватило места на жестком диске (~ 50 мегабайт) и было открыто окно «убить приложения сейчас». Это скрывалось за полноэкранной игрой, поэтому система просто заблокировалась. Если бы я не смог подключиться через ssh с другого Mac, чтобы удаленно убить несколько приложений, мне пришлось бы удерживать нажатой кнопку питания.
источник
У вас есть два отличных ответа, которые объясняют, почему это плохая идея почти во всех случаях, когда система может записывать данные на запоминающее устройство.
Причина, по которой вы можете отключить своп, заключается в том, что система может работать на носителях только для чтения, таких как CD, DVD, заблокированный сетевой образ, используя NetBoot или USB-брелок только для чтения, например, новый установщик Lion или брелок для восстановления, который поставляется с некоторыми маками, в которых отсутствует оптическая система. диски.
Наличие виртуальной памяти означает, что система может работать значительно быстрее и использовать меньше оперативной памяти, когда многие программы используют один и тот же код общей библиотеки. Каждая программа думает, что у нее есть личная копия всего кода, который ей необходим, но когда виртуальная память существует, система имеет хороший способ сопоставить одну и ту же физическую память различным программам.
Отключение подкачки не позволяет компьютеру Mac использовать крошечную часть вашего диска в качестве кеша для некоторой памяти, которая была рассчитана, но программа не была достаточно умна, чтобы записать эти результаты в надлежащий кеш.
Если у вас есть резервная копия и время для экспериментов, почему бы не отключить ее и посмотреть, как меняется ваш опыт.
Я бы продолжил свой обмен, даже если бы знал наверняка, что мне придется платить за новый диск ежегодно. Скорость, которую дает мне своп, ОГРОМНА. Это не всегда так, и время от времени, когда система перебивает или пейджингует - вы можете иметь обратное. Многие люди предпочитают запускать без подкачки, чтобы они получили ошибку выделения памяти, а не позволяли своему компьютеру Mac начать пейджинг, поскольку это может замедлить работу компьютера, когда все идет не так гладко.
Ваш случай с SSD может отличаться, поэтому дайте нам знать, если вы попробуете.
источник
dynamic_pager
, двенадцать секунд без. Для более широкого и взвешенного сравнения мы могли бы использовать Phoronix Test Suite или Geekbench .Я буду скептиком здесь: я отключил своп на своем unibody macbook pro конца 2008 года, и это заметно улучшило производительность: меньше ожидания, более быстрое переключение между приложениями.
Имейте в виду, я слежу за свободной памятью, и у меня установлено 6 ГБ. Несколько раз, когда я достигал предела памяти, система зависала :-D
На моем новом MacBook Air я не мечтал бы отключить своп, он уже быстр с включенным и у него всего 4 ГБ для начала.
Еще одна веская причина, по которой люди отключают своп на SSD, заключается в том, что они получают крошечные SSD и им нужно все пространство, которое они могут получить. В любом случае, не делай этого.
источник
Мой опыт похож на W00T. Я отключил файл подкачки на SL и Lion, потому что увеличение производительности работает для меня. Использование проводной связи выходит из-под контроля примерно через неделю, но простая перезагрузка исправляет это. У меня нет SSD, но медленный диск 5400rpm. Продолжительность жизни SSD на самом деле не так плоха, как люди пытаются все же их представить. Если вы делаете это просто потому, что боитесь изнашивать свой SSD, пожалуйста, смотрите: http://www.anandtech.com/show/4159/ocz-vertex-3-pro-preview-the-first-sf2500- ssd / 2 и http://communities.intel.com/thread/21717?tstart=0 Intel оценивает свои накопители более чем на 20 ГБ в день каждый день на срок до 5 лет на диске объемом 80 ГБ. Диски большего размера прослужат еще дольше. Средний пользователь даже не использует 10 ГБ / день.
Я проверяю использование памяти объемом 4 ГБ с помощью меню iStat и использую скрипт Automator с командой bash «purge» (требуется установить Xcode), чтобы очистить неактивную память и часто открывать больше свободной памяти. Несколько раз, когда у меня были приложения с утечками памяти, которые занимали всю оперативную память, мне приходилось делать полный сброс. Редкие случаи этого и ускорение в целом делают целесообразным отключение файла подкачки для меня. Я понимаю, что не могу открыть столько приложений одновременно, как утверждают другие, но я могу работать с этим.
источник
Просто добавьте мои 2 цента для тех, кто хочет отключить своп из-за маленьких SSD: sleepimage использует гораздо больше дискового пространства.
И для тех, кто обеспокоен ограниченным сроком службы твердотельных накопителей (особенно тем, которые не могут быть заменены MBA и жестко смонтированными микросхемами твердотельных накопителей), если ваш компьютер спит много раз в день, перезапись образа сна может стать проблемой. Мой ноутбук спит полдюжины раз в день легко. Это записывает 48 ГБ данных на мой SSD ежедневно.
Решение в каждом случае состоит в том, чтобы отключить режим гибернации, а затем удалить файл sleepimage, размер которого равен установленной оперативной памяти (в моем случае 8 ГБ).
Риск обратной стороны: если ваша батарея разрядится во время сна вашего ноутбука, ваше текущее состояние будет потеряно. Это будет эквивалентно принудительному перезапуску. Никакого физического вреда ноутбуку, только потеря производительности. Если вы отключите режим гибернации, разрядите батарею и не сможете зарядиться, просто используйте код, чтобы включить режим гибернации!
Чтобы отключить гибернацию, в Терминале команда выглядит следующим образом:
Чтобы включить гибернацию, выполните следующую команду:
Чтобы удалить последний образ сна для освобождения места на SSD / HDD (имеет смысл, если вы выключите режим гибернации, иначе новый займёт это место в следующий раз, когда ваш будущий компьютер спит):
Источник: man pmset
источник
Отключение свопа делает увеличение производительности. Например, я регулярно использую Aperture, и когда swap растет, производительность ухудшается, а когда он выходит за пределы 1 Гб, мне приходится перезагружать ОС, чтобы очистить ее и восстановить производительность. Примечание: машина имеет 6 ГБ ОЗУ и НЕ полностью занята, около 3 ГБ свободно, но 1 ГБ подкачки значительно снижает производительность.
источник
Я отключал своп на машинах много лет, как на OS X, так и на других вариантах UNIX.
Я использую инструмент, чтобы предупредить меня, когда память заканчивается, и никогда не беспокоиться о сбое моей системы.
Мой iMac имеет 12 ГБ, а при отключенном свопе у меня почти всегда свободно 4 ГБ, даже если открыто несколько инструментов разработки, приложений, браузеров и т. Д.
источник
Повторяющийся шаблон здесь таков:
У тех, у кого отключен файл подкачки, улучшена производительность (при достаточной физической памяти)
Те, кто НЕ отключил пространство подкачки, уверены, что оно не будет работать, и произойдет что-то ужасное, и горячо советуют вам этого не делать.
Это связано просто с двумя вещами:
источник
Просто личный опыт.
Небольшое примечание: если ваш Mac использует встроенную графику, его память используется совместно с основной памятью с помощью kernel_task. Таким образом, вам придется вычесть эту сумму из общей суммы, которую можно использовать.
Пользователям твердотельных накопителей приятно иметь больше места, но важно знать, что виртуальная память процветает на твердотельных накопителях, вы можете получить от нее большую выгоду. Вредит ли это SSD? Да, но вы долго заменяете свой Mac, прежде чем заметите.
источник
Управляющее резюме
Область подкачки (называемая разделом подкачки, файлом подкачки или файлом подкачки) - это просто механизм для увеличения физической памяти, адресуемой ОС.
Если у вас мало доступной физической памяти и на сегодняшней машине, я бы сказал, если у вас 4 ГБ или меньше оперативной памяти. Тогда у вас, вероятно, должен быть обмен. Но это зависит от вашей рабочей нагрузки и от того, как вы используете свою машину.
Если у вас более 4 ГБ ОЗУ, есть большая вероятность того, что ваша система никогда не сможет использовать своп. Так что, если своп включен или нет, это не сильно изменится.
Хотя это зависит от других факторов, чем дольше ваша машина будет работать, тем больше вероятность того, что операционная система поменяет небольшую неиспользуемую часть оперативной памяти на процесс подкачки, даже если остается достаточно места. Однако часто система использует «свободную» оперативную память для файловых буферов и прочего, и из-за некоторой рабочей нагрузки буфер файлов может использовать всю доступную оперативную память.
Исходная информация
В любом случае, что произойдет, если вы отключите своп и ваша память будет полностью использована? Что ж, в следующий раз, когда приложение запросит больше памяти (как с malloc или realloc), оно получит ошибку! Если он правильно закодирован, приложение обнаружит его, но обработка такой ошибки и корректное завершение программы могут быть проблемой! Тем не менее, многие разработчики не проверяют успешность выделения памяти, и часто происходит сбой приложения, как только эта нераспределенная память будет использоваться. Таким образом, существует большая вероятность того, что приложение будет аварийно завершено, и на самом деле многие приложения аварийно завершат работу, потому что обычно одновременно выполняется несколько приложений. Надеюсь, само ядро должно быть невосприимчивым, но по моему опыту это было не всегда так.
Если у вас есть своп, у вас будет такое же поведение , но у вас будет более высокий лимит, так что есть вероятность, что вы не достигнете этого лимита.
У меня есть лично 2 машины с 8 и 16 ГБ оперативной памяти. Мое личное использование этих машин никогда не должно приближать меня к использованию всей этой оперативной памяти (сегодня! Возможно, через несколько лет это может измениться). Единственная причина, по которой я бы достиг физических пределов ОЗУ, заключается в том, что процесс стал мошенническим и потребляет всю ОЗУ. Отсутствие свопа - это облегчение, ядро сразу же убьет мошеннический процесс, как только он достигнет предела оперативной памяти. Если у вас есть своп, вы получите болезненный опыт (может быть, не на SSD ...), так как ваша система будет своп, а также своп и свопинг и станет иногда полностью безразличной, пока, надеюсь, ваше ядро не убьет преступника!
Консультирует
Вас не должны пугать люди, которые говорят вам, что если вы удалите своп, то может произойти что-то ужасное. Если вы это сделаете, ваше физическое адресное пространство будет уменьшено, как если бы вы перешли с 4 ГБ ОЗУ на 2 ГБ. Вы бы сделали такую вещь? Тогда вам не следует удалять своп. Однако вы можете решить ограничить его, и это было бы разумно .
Если кто-то думает, что его рабочая нагрузка может привести к тому, что он будет использовать близко или больше, чем доступное физическое ОЗУ, или если потребуется много операций ввода-вывода (чтение / запись на диски), то своп должен быть сохранен.
Когда следует сохранить своп, пользователь должен попытаться установить ограничения на объем памяти, который может использовать процесс. В системе Linux можно использовать ограничения памяти cgroups, чтобы избежать выхода из-под контроля некоторых процессов. Я не знаю эквивалента в OS X, но так и должно быть.
Однако, если у человека более чем достаточно доступной памяти для его рабочей нагрузки, он может безопасно отключить обмен или сохранить его. Это не сильно изменится даже с точки зрения производительности, потому что, если система не использует подкачку, вы не столкнетесь с падением производительности (особенно заметным на старом ротационном жестком диске, в особенности на SSD).
Использование того же трюка, что и выше, чтобы попытаться установить ограничения памяти для процесса или группы процессов, также выгодно в случае более чем достаточно доступной оперативной памяти.
Мой собственный пример
У меня есть старый компьютер с 1 ГБ оперативной памяти, там у меня большой своп: 4 ГБ, чтобы я мог запустить на нем Firefox и другие приложения. Я стараюсь использовать как можно меньше приложений (или вкладок в Firefox), чтобы иметь правильный пользовательский интерфейс.
У меня небольшой сервер с 8 ГБ оперативной памяти. Там я точно знаю свою рабочую нагрузку и не хочу, чтобы мой сервер замедлялся, потому что процесс вышел из строя и потребляет всю память. Там у меня нет барьера, ограничивающего ограничение памяти подкачки и cgroup, поэтому приложения или службы могут аварийно завершить работу, но не ядро. Кстати, это машина Linux.
Затем у меня есть Mac с 16 ГБ оперативной памяти. Я не единственный пользователь этого, и мы не возражаем против ожидания при переключении пользователя. Там у нас есть своп, мне сложно спланировать нагрузку других пользователей этого компьютера. Даже если бы я был единственным, я бы использовал своп. Я часто запускаю несколько виртуальных машин и использую приложения, потребляющие память, но не все одновременно, поэтому я не возражаю против замены ОС в неиспользуемом приложении, чтобы я мог ускорить дисковый ввод-вывод или запустить еще одну виртуальную машину. Несмотря на то, что до сих пор я не видел, чтобы эта машина менялась!
источник
Я просто отключил файл подкачки на своем MacBook Air 2011 года (4 ГБ ОЗУ, 128 ГБ SSD), потому что меня тошнило от файла подкачки, который медленно занимал все оставшееся место на жестком диске, а затем приходилось перезагружать. Таким образом, идея заключается в том, что я буду запускать меньше программ.
Я посмотрю, действительно ли это работает, или мне все равно придется перезагрузить компьютер, чтобы очистить «проводную» память, но пока она работает хорошо. Однажды, когда память стала действительно полной, компьютер замедлился так же, как и когда мой SSD исчерпал память - но он восстановился намного быстрее, как только я вышел из приложений. (И я действительно смог выйти из приложений, чего обычно не бывает, когда SSD заполняется).
Я посмотрю, как обстоят дела со стабильностью, но пока я счастливый турист. Это также вынуждает меня запускать меньше приложений (и вкладок Chrome) за раз, что хорошо для фокусировки задач.
источник
Основной причиной отключения файла подкачки является не скорость, а дисковое пространство.
Если пользователь является пользователем, который обычно работает в пределах 5 ГБ от полного диска, отключение подкачки прекратит постоянное ворчание нехватки места; Я обычно получаю файл подкачки объемом 4 ГБ из обычного просмотра.
Улучшение скорости поразительно на старых машинах; это не так впечатляет на современных машинах, оснащенных SSD. (В OSX 10.0 на iMac использование виртуальной памяти уменьшило вдвое скорость многих операций, включая копирование файлов между дисками).
источник