Ускорение пробуждения Мака после режима сна

Хотя мы уже четвёртый год ведём проект AppStudio, регулярно появляются разные технические вопросы, интересующие и нас самих. К числу таких давних задачек относится подтормаживание MacBook в момент пробуждения после режима сна.

Когда-то у автора материала был белый пластиковый MacBook. В те времена подвисания и лаги на несколько секунд можно было объяснить не самым новым процессором и не самым быстрым жёстким диском. Но когда на смену пластмассовому макбуку пришёл новенький MacBook Air с SSD, вместе с ним пришла надежда и на то, что любые тормоза уйдут в прошлое. И эта надежда практически полностью оправдалась, если бы не одно но — при выходе из режима сна макбук по-прежнему любит иногда зависать на несколько секунд, крепко задумавшись над чем-то.

К счастью, этим вопросом озаботились не только мы. Например, редакция OS X Daily провела небольшое исследование и нашла наиболее вероятную причину подобного поведения Мака. Давайте и мы с вами разберёмся в этом.

Полагаем, ни для кого ни секрет, что сон и для Маков, и для PC — понятие обширное. Если не вдаваться в детали, существует несколько различных режимов сна:

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

При желании на Маке можно активировать любой из этих режимов сна c помощью терминальной команды sudo pmset -a hibernatemode 0, в которой ноль надо поменять на нужную вам цифру:

  • 0 — сон без сохранения содержимого оперативки на диск
  • 1 — гибернация
  • 3 — сон с копированием содержимого оперативки на диск (этот режим используется на большинстве Маков по умолчанию)
  • 5 — гибернация с шифрованием содержимого оперативки
  • 7 — режим 3 с шифрованием оперативки

Ничего принципиально нового мы пока не написали — всё это и так хорошо известно.

Но куда интереснее узнать то, как устроен этот самый режим №3. Копирование содержимого оперативной памяти на диск происходит не сразу после того, как Мак засыпает, а лишь через некоторое время. Это сделано как раз с целью ускорения пробуждения Мака. После того, как этот интервал времени проходит, содержимое оперативки копируется на диск. Соответственно, если ваш Мак долго пробыл в режиме сна, то при его пробуждении содержимое оперативки копируется с диска обратно в память. На это и уходит время.

Что делать в этом случае? Ответ напрашивается сам собой: надо отрегулировать интервал времени, после которого спящий Мак копирует содержимое оперативки на диск.

Для начала надо узнать этот интервал командой в Терминале:

pmset -g | grep standbydelay

Вы увидите значение в секундах. Например, для MacBook оно обычно равно 4200, т.е. ноут бэкапит оперативную память на диск через 70 минут, после чего засыпает окончательно. Поменять это значение можно командой:

sudo pmset -a standbydelay 36000

36000 замените на нужное вам количество секунд. Поскольку команда вводится с префиксом sudo, после нажатия Enter вам потребуется ввести пароль от аккаунта и снова нажать Enter.

В качестве заключения стоит предупредить о возможных последствиях увеличения параметра standbydelay. Во-первых, MacBook будет активнее расходовать заряд батареи в режиме сна; во-вторых, повышается риск потери несохранённых данных в том случае, если вы оставляете макбук спать с низким уровнем заряда. Разумеется, для десктопных Маков эти ограничения неактуальны.

Поделитесь страницей через социальные сети

  • ArBIOS

    Но когда Mac пишет на диск содержимое оперативки, то не может быть, чтобы это не отнимало хоть какие-то ресурсы у HDD(SSD) и RAM, это так?

  • http://grawl.ru GrawlCore

    Я бы не стал играть с такими тонкостями. Apple лучше знает, как удобнее.

  • iturkov

    Может действительно эти несколько секунд для кого нибудь принципиальны.. Информация интересна сама собой.. еще пунктик Терминалу.

  • valkc

    Увеличив этот интервал, Вы уменьшаете заряд вашего аккумулятора — помните и об этом.

  • Nik McCoy

    то есть по сути этот обзор о том как не дать маку до конца заснуть, а не ускорить его пробуждение

  • AIlyen

    Не знал про увеличение времени, отведенного на гибернацию. Спасибо за информацию. Я вот просто, например, отключил эту функцию, вписав в файл «0», так как хотел увеличить ресурс SSD. Отсюда назрел вопрос: действительно ли НАСТОЛЬКО нужно печься о SSD, что вообще снизить до минимума операции по записи?

  • mczmike

    Скажите что именно можно потерять при режиме 0? Окна сафари,шопа,ворда? поточней пожалуйста.

  • AIlyen

    [quote=»ArBIOS, post: 8680″]Но когда Mac пишет на диск содержимое оперативки, то не может быть, чтобы это не отнимало хоть какие-то ресурсы у HDD(SSD) и RAM, это так?[/quote]
    Ну, в случае с ОЗУ и HDD ресурс значения не имеет. Вряд ли вы его исчерпаете за цикл жизни устройства, а вот ресурс SSD заметно ниже, и тут имеется некоторая опасность

  • ulbars

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

  • Divo

    К владельцам iMacов, не замечали, когда ставите его в сон на задней стенке с левой стороны начинает что-то гудеть. Или это только у меня?

  • iturkov

    Да здравствуют комментарии =))

  • Dim

    Ндаа….. А вот мой MacBook Pro так и не вышел из режима сна после долгой с ним работы и дальнейшего засыпания на часов на 10… И до сих пор так! Включаешь — свтодиод на передней панели загорается, CD шуршит, а на экране тишина. Выключаешь — выключается! Это конец?? )) кто нибудь сталкивался?

  • Larix

    ну и дела; никогда не сталкивался с подобной проблемой