pmset中自动关机和待机之间的区别


27

我刚刚获得了一台新的Retina MacBook Pro 15”。由于计算机进入休眠状态(即使使用交流电源),导致一些下载中断,之后,我开始在手册页中查找该pmset命令。我确实解决了最初的休眠问题,但一些选项引起了我的兴趣,特别是,这autopoweroff是手册页中的设置说明:

autopoweroff-在支持的情况下,默认情况下启用,作为对欧洲能源相关产品指令的Lot 6的实施。睡眠了autopoweroffdelay分钟后,系统将写入休眠图像,并进入低功耗芯片组睡眠状态。从此状态唤醒要比从常规睡眠唤醒要花费更长的时间。如果连接了任何外部设备,系统使用电池供电,或者系统绑定到网络并且启用了网络访问唤醒功能,则系统不会自动关闭电源。

然后是standby模式:

待机会导致内核电源管理在计算机休眠指定时间后自动使计算机休眠。这样可以在睡眠时节省电量。对于支持的硬件,此设置默认为ON。如果此机器支持该功能,则设置待机状态将在pmset -g中显示。

仅当将休眠模式打开为休眠模式3或25时,standby才起作用。

Standbydelay指定将休眠映像写入磁盘并关闭内存以供待机之前的延迟(以秒为单位)。

现在,也许我只是个笨蛋,但两个选项似乎都在做本质上相同的事情。我看到的主要区别是standby需要特定的hibernatemode

具体来说,我要配置计算机的方式是让它hibernatemode 0在第一次关闭机盖时只进行RAM睡眠(完全一样),这样它才能迅速进入睡眠状态,而无需立即将RAM内容写入磁盘。但是,如果我在关闭盖子的情况下使计算机处于休眠状态(例如4个小时),则我希望它仅将RAM内容写入磁盘并关闭计算机电源,以节省电池电量。长时间睡眠的情况。理想情况下,我还希望第二部分(将RAM写入磁盘并关闭电源)仅在计算机依靠电池供电时才发生。

在这里,原因是,对我而言,睡眠的常见用例是将计算机从家中带回家再带回去,并且没有必要减慢睡眠过程并浪费SSD写入周期(以及减慢唤醒速度)。启动过程(如果它休眠了))是否要在不到一个小时的时间内再次唤醒它;同样,由于它花费的睡眠时间非常短,因此在如此短的时间内关闭计算机不会节省多少电池。

我该如何配置hibernatemodeautopoweroffautopoweroffdelaystandbystandbydelay选项来实现这一行为呢?


我有一个问题:在我的Macbook pro 2015(12,1)pmset -g上显示:autopoweroffdelay 14400我从未更改过它,所以它是出厂设置。但是“ man pset”显示:autopoweroffdelay-进入自动关机模式之前的延迟。(值=整数,以分钟为单位)因此将出厂设置设置为14400,我的Mac将在... 10天之前不进入安全睡眠状态!很好奇,不是吗?

我很好奇,您如何解决下载中断问题?
Dickster '18

Answers:


13

http://support.apple.com/kb/HT1757中也提到了自动关机功能:

随着OS X Mountain Lion v10.8.2补充更新2.0的发布,引入了一项新功能,可以在计算机连接交流电源四个小时后进入安全睡眠。这是为了遵守欧洲能源标准(ErP Lot6)。仅当没有无线或以太网活动并且没有外部设备(例如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(13英寸视网膜,2012年末)及更高版本
  • MacBook Pro(Retina,15英寸,2013年初)及更高版本
  • MacBook Pro(Retina,2012年中)
  • MacBook Air(2010年中)及更高版本
  • Mac mini的SSD和Fusion驱动器版本(2012年末)及更高版本
  • iMac的SSD和Fusion驱动器版本(2012年末)及更高版本

2013年或之后生产的Mac计算机经过三小时的“常规”睡眠后进入待机状态。较早的计算机在经过一个多小时的“常规”睡眠后便会激活。

要进入待机状态,计算机必须:

  • 正在使用电池供电(如果是Mac笔记本计算机)。
  • 没有连接USB设备。
  • 没有连接Thunderbolt设备。
  • 没有插入SD卡。
  • 没有连接外部显示器。
  • 电池完全充满电的计算机可以在不连接交流电源的情况下保持待机三十天。

计算机的状态将保存到闪存(SSD),然后关闭硬件子系统的电源,以增加待机时间。例如,在待机期间,RAM存储器和USB总线已关闭电源。

因此,不同型号的Mac支持待机模式和自动关机功能,并且它们是在不同条件下启用的。待机模式于2010年推出,最初仅受MacBook Air的支持,但现在除Mac Pro,不带SSD的iMac和不带SSD的Mac mini之外的所有新Mac都支持。autopoweroff于2012年推出,除Mac Pro外,所有新Mac均支持该功能。

我不知道处于待机模式的状态是否与自动关机状态不同。Mac从两种状态唤醒时,将显示带有进度条的灰色屏幕。

请注意,Apple已使用“安全睡眠”来指代笔记本电脑默认使用的混合睡眠和休眠模式(例如在http://support.apple.com/kb/PH11096中)和仅休眠状态(例如在上方第一段引文中)。

即使将待机模式设置为0并禁用待机模式和自动关闭电源,您也不会浪费那么多能量。新型笔记本电脑在睡眠模式下消耗约0.7-1W的能量,而在关闭或休眠模式下消耗约0.2-0.3W的能量。


如此看来,主要区别在于autopoweroff应用于交流电源和standby电池电源吗?我猜那standby是我真正需要的模式。
swineone 2013年

在谈论能源浪费时,请将您的数字乘以地球上的笔记本电脑数量。另外,也许我缺少了一些东西,但是为什么有些东西会在“关闭时”使用电源?
eggyal '16

25

我试图总结图片中的所有设置。

对于OS X 10.9(较新的OS会有所不同)

睡眠待机资源

我会说只有两种“模式”:睡眠和休眠

  • 睡眠:数据将保存在内存中。
  • 休眠状态:(或待机?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模式之前指定延迟。

有人可以查看并确认解释吗?谢谢


1
这个图像太神奇了!
Andrea Bergonzo

好形象!我相信autopoweroffdelay也是秒(见man pmset
Zyphrax

man pmset-> autopoweroffdelay-进入自动关机模式之前的延迟。(值=整数,以分钟为单位)
elgcom

1
我不知道秒数/分钟数是否会因型号而异。我的手册页说:“ autopoweroffdelay指定进入自动关机模式之前的延迟(以秒为单位)”。
开尔文

很棒的图形!但尚无任何评论明确证实这一点,也尚未获得最高票数的答案。如果可以确认,该答案将是最佳答案,因为图表+说明的组合使其成为最有效的可消化答案。
porg

12

这种冬眠/睡觉的事一直让我发疯。我同意Apple应该投入更多精力来解决此pmset行为。

我会清楚的。我喜欢休眠模式,它过去可以在较旧的模型和操作系统中完美运行(仅运行sudo pmset hibernatemode 25就足够了)。现在苹果公司坏了一些东西,自从优胜美地以来这根本不起作用。

我现在有一个Retina,与休眠相比,休眠选项比以往任何时候都更有意义。我不明白为什么拥有SSD的人们如此喜欢休眠而不是休眠,我只是不明白他们不了解休眠和休眠之间的唤醒时间差为1秒,但是他们节省了大量的电池,有人向我解释了什么他们认为这是最大的优势,因为我不明白。无论如何,(如果您像我一样喜欢冬眠,请继续阅读)我想冬眠工作。我花了数周的时间才使它生效,我将与大家分享我所做的事情。


您必须先重置SMC,然后再重置NVRAM / PRAM:

重置SMC(http://support.apple.com/kb/ht3964):

  1. 关闭计算机。
  2. 将MagSafe电源适配器插入电源,如果尚未连接,则将其连接至Mac。
  3. 在内置键盘上,同时按(左侧)Shift-Control-Option键和电源按钮。
  4. 同时释放所有按键和电源按钮。
  5. 按电源按钮打开计算机。

注意:重置SMC时,MagSafe电源适配器上的LED可能会更改状态或暂时关闭。

重置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上取消了睡眠灯,这非常有用)


使用适用于El Capt的2008年末
Macbook

冬眠不会被autopoweroff沉睡所取代吗?还是您说它更可取?
男孩先生

我认为人们不喜欢休眠的原因(至少使用自动关机功能)是因为它杀死了您的Chrome标签页,杀死了您的rails / nodejs服务器,杀死了您的本机进程,从根本上破坏了您作为没有工程师的工程师的工作效率笔记本电脑通宵开机。
Eric Goldberg

是否知道禁用触控板/键盘唤醒的命令?
Rodrigo Polo

@EricGoldberg-我想您是在谈论“系统重新启动时恢复”,在该系统中,系统正常启动并重新创建所有窗口。休眠只是Mac睡眠的另一种方式,它的功耗要少得多,因为RAM已保存到磁盘。请参阅DeepSleep网站的最后一部分,其中包括显示差异的视频。我不建议使用此工具,尽管El Capitan 10.11在选择休眠和正常睡眠方面非常方便。
RichVel

1

这是对两种电源管理模式(待机与自动关机)的很好的汇编和并列,但是以上得出的结论并不完全正确。

我有2012年中的Macbook Pro 15英寸(非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”命令。但是,有时似乎确实会由“ autopoweroffdelay”计时器触发“自动关机”休眠状态,但不会由“ standbydelay”计时器触发“待机”休眠状态。自从Mountain Lion(甚至在Mavericks)以来,电源管理就一直无法正常工作。

我刚刚看了pmset命令的日志,似乎我的MacBook Pro于11:02 PM(由于EC.ACAttach / Maintenance)被唤醒,然后又在3:32唤醒了“ Dark Wake”,原因是EHC1 / HID活动”。AHC1 / HID设备是我的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”计时器保持为默认值14400秒(4小时)。我将电池电源的“待机延迟”手动设置为28,800秒(8小时),而交流电源的“待机延迟”设置为100,800秒(28小时)。要确定哪个“休眠”选项生效(“自动关机”或“待机”)的唯一方法是将其设置为非常短的时间间隔,例如Mac进入“睡眠”状态可能需要1个小时。然后,您可以看到哪种“休眠”模式触发了Mac“休眠”。

毋庸置疑,Apple不能在几年内使它正常工作是不可接受的。需要清理“ pmset”命令支持的功能,并且支持的选项必须在“系统偏好设置”的GUI中可用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.