Mac 合盖掉电(休眠掉电)解决方法
Mac在合盖之后还在掉电,第二天打开一看,只有40%的电量。针对合盖掉电的问题可能有以下解决方法。
1、重置Mac的SMC
根据Mac官方的提示,重置爱SMC可以解决某些电源,电池,风扇相关的问题。重置方法如下:
Mac官方针对不同型号的电脑都给出了相关的设置方法。根据教程设置后可能可以解决相关的问题。
2、在终端中修改电源选项
在终端中查询相关状态,不了解终端是什么东东的朋友可以翻看我之前的文章。
简洁版本:
为了节约大家时间,这里给一个简单版本。
1.合盖后关闭网络唤醒:
sudo pmset -b tcpkeepalive 0
2.减小合盖后数据在内存中保留的时间(默认8个小时 = 28800秒)
sudo pmset -b standbydelay 14400
3.减小装数据写入硬盘彻底断电的时间
sudo pmset -b autopoweroffdelay 14400
4.修改休眠模式
sudo pmset -b hibernatemode 25
(需要说明的是,修改为25之后,唤醒会稍微变慢,大约需要4~5s,介意者可修改为3)
注意以上操作都需要在敲入命令后输入自己的开机密码然后按回车。
详细版本
在终端中输入pmset -g,查看相关的电源设置(power managment settings,电源管理设置的意思);在插电源使用时看到的是插电源状态下的设置,合盖掉电应该是电池状态下的问题,建议拔掉电源后再输入指令。
System-wide power settings:
Currently in use:
lidwake 1
autopoweroff 1
standbydelayhigh 86400
autopoweroffdelay 28800
proximitywake 0
standby 1
standbydelaylow 10800
ttyskeepawake 1
hibernatemode 25
powernap 0
gpuswitch 2
hibernatefile /var/vm/sleepimage
highstandbythreshold 50
displaysleep 5
sleep 5 (sleep prevented by timed)
acwake 0
halfdim 1
tcpkeepalive 0
disksleep 10
输入pmset -g后会输出现在相关的状态信息,我这里把出现的各个项目按顺序简要说明一下。
- lidwake – 当笔记本打开盖子的时候唤醒机器(值为 1 或者 0)
- autopoweroff – 系统将写入休眠镜像并且进入到低电量芯片组睡眠。从这个状态唤醒所花的时间要比普通休眠唤醒的时间要长。如果有外部设备连接,系统不会自动切断电源,如果系统使用电池供电,或者系统被绑定在网络并且通过网络访问被唤醒功能开启。
- standbydelayhigh - 当电源电量够高时,合盖后内存保留的秒数
- autopoweroffdelay – 进入自动切断电源模式的延迟(值为表示分钟的整数)
- proximitywake - 同 iCloud 设备唤醒
- standby - 合盖后保留内存(值为0或者1)
- standbydelaylow - 电池电量低时,合盖后内存保留的秒数
- ttyskeepawake – 当任何 tty(如:远程登录会话) 在活动状态时,阻止系统空闲睡眠。tty 只能是非活动 当它的空闲时间超过系统睡眠计时器(值为 1 或者 0)
- hibernatemode – 改变休眠模式
- powernap - 电源小憩(0或1)
- gpuswitch - gpu支持(2为自动模式)
- hibernatefile – 改变休眠镜像文件位置。镜像应该只被定为到根卷中。请小心使用(值为路径)
- highstandbythreshold - 电池剩余电量百分比 standby模式的选择阈值,一般为50%
- displaysleep – 显示器睡眠计时器;替换 10.4 版本中的 dim 参数(值为分钟,或者设置 0 来禁用)
- sleep – 系统睡眠计时器(值为分钟,或者设置 0 来禁用)
- acwake – 当电源(AC 或者电池)改变的时候唤醒机器(值为 1 或者 0)
- halfdim – 显示器睡眠将使用在最大亮度和关闭显示器之间的中间亮度(值为 1 或者 0)
- tcpkeepalive - 合盖时是否保存网络连接
- disksleep - 硬盘休眠时间(值为分钟)在合盖之后,或者长时间不操作电脑之后,系统将进入等待休眠的模式,在sleep的时间之后,依据hibernatemode的模式不同,会进入不同的休眠模式。
依据Mac的休眠流程,我们主要需要修改的参数有以下几个: sleep,hibernatemode,提高standby的电量阈值;tcpkeepalive设置为0,合盖后中断网络链接;proximitywake设置成 0, 关闭被同一网络下的同 iCloud 设备唤醒。
这里需要对hibernatemode的不同参数说明一下。
- hibernatemode = 0
- iMac, Mac Mini等 Mac桌面设备默认参数
- 持续向内存供电,将数据保留在内存
- 唤醒速度快,减少硬盘占用
- 数据有丢失风险
- 耗电量大
- hibernatemode = 25
- 将数据写入硬盘
- 不向内存供电,将内存镜像直接写入硬盘
- 数据不易丢失,镜像占用硬盘空间
- 唤醒速度慢
- 耗电量少
- hibernatemode = 3
- MacBook 笔记本设备默认参数
- safe sleep, 数据既写入内存又写入硬盘
- 持续向内存供电
- 唤醒时,根据设备电量自动选择从 内存/硬盘 恢复
依据以上参数含义,我们将电池供电下的状态设置如下:
// 5 分钟后进入休眠
sudo pmset -b sleep 5
// 向硬盘写入镜像,不向内存供电
sudo pmset -b hibernatemode 25
// 显示器休眠时间:15 分钟
sudo pmset -b displaysleep 15
// 硬盘休眠时间:30 分钟
sudo pmset -b disksleep 30
// 休眠时断网
sudo pmset -b tcpkeepalive 0
// 高电量下 standby: 4小时
sudo pmset -b standbydelayhigh 14400
// 低电量下 standby: 2小时
sudo pmset -b standbydelaylow 7200
// standby 电量阈值:75%
sudo pmset -b highstandbythreshold 75
// 开盖唤醒
sudo pmset -b lidwake 1
// 关闭被同一 iCloud 下的设备唤醒
sudo pmset -b acwake 0
经过以上设置之后,应该就可以减少合盖后Mac的掉电情况。实测掉电很少,一晚上大约1%吧。希望以上内容可以对大家有所帮助,谢谢大家。
参考资料:
MacOS 关闭 tcpkeepalive 解决合盖掉电问题
通过 pmset 工具管理 masOS 睡眠,让你的 Mac 睡得更好 - 少数派
https://en.wikipedia.org/wiki/P
转自:https://zhuanlan.zhihu.com/p/294859171