Разница между автовыключением и режимом ожидания в pmset

27

Я только что получил новый Retina MacBook Pro 15 ". После того, как некоторые загрузки прервались из-за того, что компьютер засыпал (даже от сети переменного тока), я начал просматривать страницу руководства для pmsetкоманды. Я решил свою первоначальную проблему со сном, но несколько вариантов вызвали у меня интерес. В частности, вот описание autopoweroffнастройки со страницы руководства:

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

И тогда есть standbyрежим:

В режиме ожидания управление питанием ядра автоматически переводит компьютер в спящий режим после того, как он просидел в течение определенного периода времени. Это экономит энергию во время сна. Этот параметр по умолчанию включен для поддерживаемого оборудования. Режим ожидания будет виден в pmset -g, если эта функция поддерживается на этом аппарате.

Режим ожидания работает, только если режим гибернации включен в режим гибернации 3 или 25.

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

Теперь, может быть, я просто толстый, но оба варианта кажутся, по сути, одним и тем же. Основное отличие, которое я вижу, заключается в том, что standbyтребуется конкретное hibernatemode.

Конкретно, я хотел бы настроить свой компьютер таким образом, чтобы он спал только в ОЗУ (точно так же, как это hibernatemode 0делает) при первом закрытии крышки, чтобы он быстро перешел в спящий режим без немедленной записи содержимого ОЗУ на диск. Однако, если я оставляю компьютер в спящем режиме с закрытой крышкой в ​​течение определенного количества часов (скажем, 4 часа), я бы хотел, чтобы он только потом записывал содержимое ОЗУ на диск и выключал компьютер, чтобы сэкономить заряд батареи в случай длительного сна. В идеале мне бы хотелось, чтобы вторая часть (запись ОЗУ на диск и отключение питания) происходила только в том случае, если компьютер работает от батареи.

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

Как я должен настроить hibernatemode, autopoweroff, autopoweroffdelay, standbyи standbydelayварианты для достижения такого поведения?

swineone
источник
У меня есть вопрос: на моем Macbook Pro 2015 (12,1) pmset -g показывает: autopoweroffdelay 14400 Я никогда не менял его, так что это заводская настройка. Но «man pset» показывает: autopoweroffdelay - задержка перед входом в режим autopoweroff. (Значение = целое число, в минутах) Таким образом, с заводской настройкой, установленной на 14400, мой компьютер Mac не перейдет в безопасный режим раньше ... 10 дней! Любопытно, не правда ли?
Мне интересно, как вы решили проблему с прерыванием загрузки?
Дикстер

Ответы:

13

Функция автоотключения также упоминается в http://support.apple.com/kb/HT1757 :

С выпуском дополнительного обновления 2.0 для OS X Mountain Lion v10.8.2 была введена новая функция для безопасного перехода в режим сна после четырех часов подключения компьютера к сети переменного тока. Это попытка соблюдения европейских энергетических стандартов (ErP Lot6). Это произойдет только в том случае, если нет активности беспроводной сети или сети Ethernet, а также активности внешних устройств, таких как USB-устройства хранения данных.

Это нормальное поведение для следующих моделей:

  • MacBook Pro (середина 2012 года и позже)
  • MacBook Pro (Retina, середина 2012 года и позже)
  • MacBook Air (середина 2012 года и позже)
  • iMac (конец 2012 года и позже)
  • Mac mini (конец 2012 года и позже)

Режим ожидания задокументирован в http://support.apple.com/kb/ht4392 :

Mac, которые могут использовать режим ожидания:

  • MacBook Pro (Retina, 13-дюймовый, конец 2012 г.) и более поздние
  • MacBook Pro (Retina, 15-дюймовый, начало 2013 г.) и позже
  • MacBook Pro (Retina, середина 2012 г.)
  • MacBook Air (середина 2010 года) и позже
  • Версии Mac mini для SSD и Fusion (конец 2012 г.) и более поздние
  • Версии iMac для SSD и Fusion (конец 2012 г.) и более поздние версии

Компьютеры Mac, выпущенные в 2013 году или позже, переходят в режим ожидания после трех часов «обычного» сна. Более ранние компьютеры активируются после чуть более часа «обычного» сна.

Для перехода в режим ожидания компьютер должен:

  • Работать от батареи (если это ноутбук Mac).
  • USB-устройства не подключены.
  • Не подключайте устройства Thunderbolt.
  • SD-карта не вставлена.
  • Не подключен внешний дисплей.
  • Компьютер с полностью заряженной батареей может оставаться в режиме ожидания до тридцати дней без подключения к источнику переменного тока.

Состояние компьютера сохраняется во флэш-накопителе (SSD), затем питание аппаратных подсистем отключается для увеличения продолжительности режима ожидания. Например, память RAM и шина USB отключаются в режиме ожидания.

Таким образом, режим ожидания и автовыключение поддерживаются разными моделями компьютеров Mac и включаются в разных условиях. Режим ожидания был введен в 2010 году и первоначально поддерживался только MacBook Air, но теперь он поддерживается всеми новыми компьютерами Mac, кроме Mac Pro, iMac без SSD и Mac mini без SSD. autopoweroff был представлен в 2012 году и поддерживается всеми новыми Mac, кроме Mac Pro.

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

Обратите внимание, что Apple использовала «безопасный сон» для обозначения как гибридного режима сна, так и режима гибернации, которые используются ноутбуками по умолчанию (как в http://support.apple.com/kb/PH11096 ), и состояния «только гибернация» (например, в первом блоке цитата выше).

Даже если вы установите режим ожидания на 0 и отключите режим ожидания и автоматическое отключение питания, вы не будете тратить столько энергии. Новые ноутбуки потребляют около 0,7–1 Вт энергии в спящем режиме и около 0,2–0,3 Вт в выключенном или спящем режиме.

LRI
источник
Таким образом, кажется, что основное различие заключается в том, что autopoweroffприменяется к питанию от переменного тока и standbyот батареи? Я думаю, что standbyрежим - это то, что мне действительно нужно.
swineone
Говоря об энергетической трате, умножьте свои числа на количество ноутбуков на планете. Кроме того, возможно, я что-то упускаю, но зачем что-то использовать питание "когда выключено"?
eggyal
25

Я попытался обобщить все настройки на картинке.

Для OS X 10.9 (было бы немного по-другому с более новой ОС)

Sleep Standbyисточник

Я бы сказал, что есть только два «режима»: сон и гибернация.

  • Сон : данные будут храниться в памяти.
  • Спящий режим : (или Standby? SafeSleep? DeepSleep?) Данные будут храниться на жестком диске и потреблять значительно меньше энергии.

Вот резюме моего понимания ..

  1. если [sleep == 0] , компьютер больше не будет спать или переходить в спящий режим.
  2. если [standby == 1] и [hibernatemode == 3] , компьютер будет ждать еще [standbydelay] минуты, прежде чем действительно перейдет в режим гибернации.
  3. [autopoweroff] является просто дополнительной реализацией для выполнения нормативных требований и имеет такое же влияние, что и 2)
  4. 2) или 3) вступает в силу, если один из них достигнут вначале.
  5. если [standby == 1] и [hibernatemode == 25] , компьютер перейдет в режим гибернации сразу после [sleep] минут.

Примечание: в MacOS 10.13 autopoweroffdelayуказывается задержка secondsперед входом в autopoweroffрежим.

Может кто-нибудь пересмотреть и подтвердить интерпретацию ?? Благодарность

elgcom
источник
1
Это изображение удивительно!
Андреа Бергонзо
Отличный образ! Я полагаю, что задержка autopoweroff также происходит в секундах (см. man pmset)
Zyphrax
man pmset -> autopoweroffdelay - задержка перед переходом в режим autopoweroff. (Значение = целое число, в минутах)
elgcom
1
Интересно, зависит ли количество секунд / минут от модели? Моя справочная страница гласит: «autopoweroffdelay указывает задержку в секундах перед входом в режим autopoweroff».
Кельвин
Отличная графика! Но ни одного комментария, явно подтверждающего это, и еще не проголосовавшего сверху ответа. Если это будет подтверждено, этот ответ заслуживает того, чтобы быть главным ответом, поскольку комбинация инфографики + объяснение делает его наиболее эффективно усваиваемым ответом.
porg
12

Эта спящая / спящая вещь сводила меня с ума. И я согласен, что Apple должна приложить больше усилий для исправления такого поведения pmset.

Я буду ясен. Мне нравится режим гибернации, и он отлично работал в старых моделях и ОС (достаточно было просто запустить sudo pmset hibernatemode 25). Теперь Apple что-то сломала, и это не работает со времен Yosemite

Сейчас у меня есть Retina, и теперь более, чем когда-либо, режим гибернации имеет больше смысла, чем Sleep. Я не понимаю, почему люди с твердотельными накопителями так сильно любят Sleep over hibernate, я просто не понимаю, что они не понимают разницу времени пробуждения между режимом сна и сна в 1 секунду, но они экономят тонны батареи, кто-то объяснит мне, что они видят большое преимущество, потому что я его не понимаю. В любом случае, (если вы любите спящий режим так же сильно, как и я, продолжайте чтение), я хотел, чтобы спящий режим работал. Мне потребовались недели, чтобы заставить это работать, и я поделюсь тем, что я сделал со всеми вами.


Вы должны сбросить SMC, а затем NVRAM / PRAM:

Перезагрузите SMC ( http://support.apple.com/kb/ht3964 ):

  1. Выключить компьютер.
  2. Подключите адаптер питания MagSafe к источнику питания, подключив его к Mac, если он еще не подключен.
  3. На встроенной клавиатуре одновременно нажмите клавиши Shift-Control-Option и кнопку питания, расположенные слева.
  4. Отпустите все клавиши и кнопку питания одновременно.
  5. Нажмите кнопку питания, чтобы включить компьютер.

Примечание . Индикатор на адаптере питания MagSafe может изменить состояние или временно отключиться при сбросе SMC.

Сброс NVRAM / PRAM ( http://support.apple.com/kb/HT1379 ):

  1. Выключи свой Mac.
  2. Найдите следующие клавиши на клавиатуре: Command, Option, P и R. Вам нужно будет одновременно удерживать эти клавиши на шаге 4.
  3. Включить компьютер.
  4. Нажмите и удерживайте клавиши Command-Option-PR до появления серого экрана.
  5. Удерживайте клавиши, пока компьютер не перезагрузится, и вы не услышите звук запуска во второй раз.
  6. Отпустите ключи.

Теперь выполните эти:

AC:

sudo pmset -c sleep 0
sudo pmset -c standby 0
sudo pmset -c standbydelay 5
sudo pmset -c hibernatemode 25

Батарея:

sudo pmset -b sleep 120
sudo pmset -b standby 1
sudo pmset -b standbydelay 5
sudo pmset -b hibernatemode 25

Все:

sudo pmset -a acwake 0
sudo pmset -a lidwake 0
sudo pmset -a ttyskeepawake 0
sudo pmset -a darkwakes 0

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

pepeanto
источник
Это сработало для меня с использованием MacBook Pro конца 2008 года под управлением El Capt.
squarecandy
Разве гибернация не заменяется autopoweroffглубоким сном? Или вы говорите, что это предпочтительнее?
Мистер Бой
Я думаю, что людям не нравится hiberate (по крайней мере, с autopoweroff), потому что он убивает ваши вкладки Chrome, убивает ваш сервер rails / nodejs, убивает ваш естественный процесс реакции, в основном разрушает вашу производительность как инженера, у которого нет их ноутбук включается на ночь.
Эрик Голдберг
Есть идеи по какой команде отключить трекпад / пробуждение клавиатуры?
Родриго Поло
@EricGoldberg - я думаю, что вы говорите о «возобновлении работы системы при перезапуске», когда система загружается как обычно и заново создает все окна. Hibernate - это еще один способ сна вашего Mac, который потребляет гораздо меньше энергии, потому что ОЗУ сохраняется на диске. Смотрите последний раздел сайта DeepSleep, включая видео, показывающее разницу. Я не предлагаю этот инструмент, хотя в El Capitan 10.11 было очень удобно выбирать спящий режим против нормального сна.
RichVel
1

Это хорошая компиляция и сопоставление двух режимов управления питанием: режим ожидания с автоматическим отключением питания, но выводы, сделанные выше, не совсем верны ИМХО.

У меня есть Macbook Pro 15 "середины 2012 года (без SSD), и он поддерживает как режим ожидания, так и автоотключение. Приведенные выше статьи не показывают, что MacBook Pro в середине 2012 года поддерживает режим ожидания; однако ниже приведен вывод" pmset ". -g cap "на моем MacBook Pro:

$ pmset -g cap
Capabilities for AC Power:
 displaysleep
 disksleep
 sleep
 womp
 acwake
 lidwake
 halfdim
 sms
 gpuswitch
 standby
 standbydelay
 ttyskeepawake
 hibernatemode
 hibernatefile
 autopoweroff
 autopoweroffdelay

У меня были всевозможные проблемы с управлением питанием со времен Mountain Lion; После перехода в спящий режим компьютер переходил в спящий режим, поэтому я начал изучать команду pmset. Однако иногда казалось, что спящий режим «autopoweroff» будет запускаться таймером «autopoweroffdelay», но спящий режим «standby» не будет запускаться таймером «standbydelay». Со времен Mountain Lion управление питанием никогда не работало правильно, даже в Mavericks.

Я только что посмотрел в журнале команды pmset, и кажется, что мой MacBook Pro разбудил «Темный пробуждение» в 23:02 «из-за EC.ACAttach / Maintenance», а затем снова в 3:32 »из-за EHC1 / HID Activity ". Устройство AHC1 / HID - это моя Bluetooth-клавиатура Logitech или Magic Trackpad.

pmset -g stats

4/17/14, 7:06:08 PM EDT  Sleep                  Clamshell Sleep: Using BATT (Charge:99%)                                              
4/17/14, 7:06:11 PM EDT  SlowResponse           PMConnection: Response from com.apple.apsd is slow (powercaps:0x0)                    3038 ms       
4/17/14, 7:06:34 PM EDT  Assertions             PID 33194(AddressBookSour) Released PreventUserIdleSystemSleep "Address Book Source Sync" 00:00:30  id:0x100000b31 [System: No Assertions]            
4/17/14, 7:06:34 PM EDT  Assertions             PID 172(UserEventAgent) Released BackgroundTask "com.apple.AddressBook.ScheduledSync" 00:00:30  id:0xc00000b32 [System: No Assertions]            
4/17/14, 7:06:36 PM EDT  Timedout               PMConnection: Response from CMacPowerHelper timed out (powercaps:0x0)                 27999 ms      
4/17/14, 7:06:36 PM EDT  WakeRequests           Clients requested wake events: None                                                   

4/18/14, 11:02:09 AM EDT                        Summary- [System: No Assertions] Using AC                                             
4/18/14, 11:02:14 AM EDT DarkWake               DarkWake [CDN] due to EC.ACAttach/Maintenance: Using AC (Charge:87%)        1 secs    
4/18/14, 11:02:14 AM EDT Timedout               Kernel: Response from Messages timed out (powercaps:0x9)                              30000 ms      
4/18/14, 11:02:14 AM EDT SlowResponse           Kernel: Response from powerd is slow (powercaps:0x0)                                  28003 ms      
4/18/14, 11:02:14 AM EDT Assertions             PID 16(powerd) Created InternalPreventSleep "com.apple.powermanagement.acwakelinger" 00:00:00  id:0xe00000b3f [System: PrevIdle SRPrevSleep kCPU]             
4/18/14, 11:02:15 AM EDT Wake                   DarkWake to FullWake [CDNVA] due to HID Activity: Using AC (Charge:87%)               
4/18/14, 11:02:17 AM EDT SlowResponse           PMConnection: Response from com.apple.notificationcenter.dnd is slow (powercaps:0x1f)             1536 ms       
4/18/14, 11:02:47 AM EDT Assertions             PID 33219(SubmitDiagInfo) Released PreventUserIdleSystemSleep "com.apple.SubmitDiagInfo.run" 00:00:36  id:0x100000b3e [System: PrevIdle BGTask SRPrevSleep kCPU]              
4/18/14, 11:02:59 AM EDT Assertions             PID 16(powerd) TimedOut InternalPreventSleep "com.apple.powermanagement.acwakelinger" 00:00:44  id:0xe00000b3f [System: PrevIdle BGTask SRPrevSleep kCPU]             
4/18/14, 11:02:59 AM EDT Assertions             PID 16(powerd) Released InternalPreventSleep "com.apple.powermanagement.acwakelinger" 00:00:44  id:0xe00000b3f [System: PrevIdle BGTask SRPrevSleep kCPU]             
4/18/14, 11:03:13 AM EDT Assertions             PID 33240(AddressBookSour) Released PreventUserIdleSystemSleep "Address Book Source Sync" 00:00:53  id:0x100000b5b [System: BGTask]           
4/18/14, 11:03:13 AM EDT Assertions             PID 172(UserEventAgent) Released BackgroundTask "com.apple.AddressBook.ScheduledSync" 00:00:53  id:0xc00000b5c [System: BGTask] 

4/19/14, 3:32:20 AM EDT  Wake                   Wake [CDNVA] due to EHC1/HID Activity: Using AC (Charge:99%)                7182 secs 

MacBook Pro никогда не переходил в режим гибернации, потому что для таймера «autopoweroffdelay» было установлено значение по умолчанию 14 400 секунд (4 часа) как для батареи, так и для сети переменного тока. Я вручную установил «задержку в режиме ожидания» до 28 800 секунд (8 часов) для питания от батареи и до 100 800 секунд (28 часов) для питания от сети. Единственный способ узнать наверняка, какая опция «гибернации» активируется - «autopoweroff» или «standby» - это установить ее на очень короткий промежуток времени - например, через 1 час после того, как Mac перейдет в «спящий режим». Затем можно увидеть, какой режим «гибернации» переключил Mac в «режим гибернации».

Само собой разумеется, что недопустимо, что Apple не может наладить эту работу в течение нескольких лет. Функции, поддерживаемые командой pmset, необходимо очистить, а поддерживаемые параметры должны быть доступны в графическом интерфейсе системы.

user76158
источник