macOS的睡眠与休眠

睡觉类型介绍

Mac 的睡觉分成两种,「睡眠」 (sleep) 和 「休眠」 (hibernate)。简单点说,睡眠和休眠就好比人的小憩和睡大觉,小憩醒得快,睡大觉就醒得慢。

当长时间不操作 Mac 或把 MacBook 的盖子合上或点击 Apple Logo 菜单下的 睡眠 选项,系统先进入「睡眠」状态,此时数据仍存储在内存中,系统可以被快速唤醒,快速恢复到睡眠前的状态。

在「睡眠」一段时间后(根据设置睡眠参数设置),Mac 会根据hibernatemode 的模式进入更深一层的 「休眠」 状态,此时 Mac 会将内存中的数据作为一个镜像写入到硬盘中(GB 级别大小),然后放弃内存供电,达到更加省电的目的。此时唤醒系统,数据需要从硬盘重新装载至内存,耗时会变长,速度慢。

总结一下,「睡眠」和「休眠」的主要区别:

唤醒速度快慢
是否向内存供电
是否向硬盘写入内存镜像

借用一个流程图给大家看

 Mac 会根据当前供电条件作出模式的选择,在计时器阶段内,当时间条件满足,Mac 就会将镜像写入硬盘并睡眠。

我们可以通过 pmset 查看与调整参数:

pmset -g custom:查看当前所有睡眠计划
pmset -g cap:查看当前供电条件下可以调节的参数
sudo pmset restoredefaults:还原全部设置
常用选项
pmset -a:调整任何条件下的睡眠计划
pmset -c:调整外部供电的睡眠计划
pmset -b:调整电池供电的睡眠计划
pmset -g:查看计划

常用参数说明:

hibernatemode

hibernatemode 负责管理睡眠模式。值得注意的是,睡眠时的内存镜像是否写入硬盘,除了受 hibernatemode 的控制,还和 standby 以及 autopoweroff 的值有关。

hibernatemode 有 3 种休眠模式可选择:0,25,3;

hibernatemode = 0
iMac, Mac Mini等 Mac桌面设备默认参数,持续向内存供电,将数据保留在内存,唤醒速度快,减少硬盘占用,数据有丢失风险,耗电量大;
hibernatemode = 25
将数据写入硬盘,不向内存供电,将内存镜像直接写入硬盘,数据不易丢失,镜像占用硬盘空间,唤醒速度慢,耗电量少;
hibernatemode = 3

MacBook 笔记本设备默认参数,safe sleep, 数据既写入内存又写入硬盘,向内存供电一段自定义时间,唤醒时,根据设备电量自动选择从 内存/硬盘 恢复;

sleep

sleep 控制进入睡眠所需要的空闲时间

standby

standby 是 Mac 在休眠时的计时器,当满足时间条件,Mac就会由「休眠」状态转至「睡眠」状态。

standby模式需要以下条件:
电池供电
没有外接设备
没有网络活动
没有外接显示器
在满足条件的前提下, standbydelayhigh/low 秒后,会进行睡眠。比较人性化的的一点是,standby 提供了两个倒计时,通过一个阈值 (highstandbythreshold) 进行控制。

highstandbythreshold

highstandbythreshold(电池剩余电量百分比)它是standbydelay模式选择阈值,默认 50% 电量。

高于阈值,采用 standbydelayhigh 计算时间,当电池电量高于阀值时,内存保留的秒数。
低于阈值,采用 standbydelaylow 计算时间,当电池电量低于阀值时,内存保留的秒数。

autppoweroff

autopoweroff模式需要满足以下条件:
外部电源供电
没有外接设备
没有网络活动
在满足条件的前提下, autopoweroffdelay秒后,系统会写入内存镜像然后睡眠。与上文提到的 standby 不同,standby 和 autopoweroff 相当于两个并行的模式计时器,autppoweroff 更多是为了连接外部电源充电时设计的。

gpuswitch

gpuswitch 这个参数用于管理显卡的选择,适合有独立显卡/外置显卡的 Mac
gpuswitch=0 只使用集成显卡
gpuswitch=1 只使用独立显卡
gpuswitch=2 自动切换显卡
调节这个参数可以避免在电池供电时使用耗电量高的独立显卡,以节省电量。

其他常用参数

powernap:电能小憩,系统偏好设置里也有这个,1是开启  0是关闭

tcpkeepalive:睡眠时是否保存网络连接,1是开启  0是关闭
displaysleep:屏幕休眠时间
disksleep: 硬盘休眠时间,Mac闲置多长时间后关闭硬盘,这个时间不能长于sleep 时间,时间设置一般 sleep>=disksleep>=displaysleep,否则就可能出问题

proximitywake:被同一网络下的相同 iCloud 设备唤醒。1是开启  0是关闭

ttyskeepawake:远程用户正在活动时防止Mac进入睡眠,1是开启  0是关闭
acwake: 电源改变时唤醒,也就是插上或者拔掉外置电源时唤醒Mac,1是开启  0是关闭

halfdim:显示器睡眠时使显示器亮度改变为当前亮度的一半,1是开启  0是关闭。如果关闭这个功能的话,显示器睡眠会直接关掉显示器。

lessbright:使用电池时使显示器亮度暗一点,1是开启  0是关闭

休眠文件位置:/private/var/vm/sleepimage (隐藏文件)

下列命令可显示、隐藏 隐藏⽂件

显示 隐藏⽂件 defaults write com.apple.finder AppleShowAllFiles -boolean true ;killall Finder
隐藏 隐藏⽂件 defaults write com.apple.finder AppleShowAllFiles -boolean false ;killall Finder


更多参数在终端运行 $ man pmset, 查阅 pmset 的说明

个人设置方案

我个人的睡眠计划是:外接供电条件下响应尽可能快,即减少使用休眠;电池供电条件下选用耗电少方案

外部供电时的设置:

hibernatemode 设置成 0,即 持续向内存供电,将数据保留在内存,唤醒速度快,减少硬盘占用,数据有丢失风险,耗电量大;

关闭 standyby 和 autopoweroff 模式,阻止进入休眠。

详细设置:

// 内存供电,内存镜像不写入硬盘
sudo pmset -c hibernatemode 0
// 30 分钟后进入睡眠,延长清醒时间
sudo pmset -c sleep 30
// 显示器睡眠时间:15 分钟
sudo pmset -c displaysleep 15
// 硬盘睡眠时间:20 分钟
sudo pmset -c disksleep 20
// 关闭 standby 模式
sudo pmset -c standby 0
// 关闭 autopoweroff
sudo pmset -c autopoweroff 0
// 睡眠时持续联网
sudo pmset -c tcpkeepalive 1

电池供电时的设置

hibernatemode 设置成 3,即 数据既写入内存又写入硬盘,向内存供电一段自定义时间,唤醒时,根据设备电量自动选择从 内存/硬盘 恢复;

standby 的电量阈值设置成 50%,当电量高于 50% stanby的计时器就使用 standbydelayhigh 作为休眠倒计时,反之则使用 standbydelaylow 作为休眠倒计时。
tcpkeepalive 设置成 0, 休眠时断网,以节省电量。但此时无法进行下载工作。
proximitywake 设置成 0, 关闭被同一网络下的相同 iCloud 设备唤醒

详细设置:

// 向硬盘写入镜像,同时内存供电,如不支持模式3的可以选择模式25
sudo pmset -b hibernatemode 3   //sudo pmset -b hibernatemode 25
// 20 分钟后进入睡眠,延长清醒时间
sudo pmset -b sleep 20
// 显示器睡眠时间:10 分钟
sudo pmset -b displaysleep 10
// 硬盘睡眠时间:15 分钟
sudo pmset -b disksleep 15
// 开启 standby 模式
sudo pmset -b standby 1

// 高电量下 standby: 2小时,(AOAC 机器可以适当调小阀值,如120)
sudo pmset -b standbydelayhigh 7200
// 低电量下 standby: 1小时,(AOAC 机器可以适当调小阀值,如120)
sudo pmset -b standbydelaylow 3600
// 关闭 autopoweroff
sudo pmset -b autopoweroff 0
// 休眠时断网
sudo pmset -b tcpkeepalive 0

// 关闭被同一网络下的相同 iCloud 设备唤醒
sudo pmset -b proximitywake 0

如果仅使用hibernatemode 0 可以减除休眠文件,节省空间,但想恢复休眠时记得把休眠文件夹删除。

(删除休眠文件:sudo rm -rf /private/var/vm/sleepimage,创建休眠文件夹,防止再次自动生成休眠文件,sudo mkdir -p /var/vm/sleepimage)

休眠模式可以在oc中修改为NVRAM:Misc\Boot\HibernateMode = NVRAM

安装下列 kexts(可能需要)并⾃⾏将相关内容添加到 config 列表中

HibernationFixup.kext
下载地址: https://github.com/acidanthera/HibernationFixup
NVMeFix.kext
下载地址: https://github.com/acidanthera/NVMeFix

参考资料:

https://sspai.com/post/61379

https://github.com/daliansky/XiaoXinPro-13-hackintosh/blob/master/EFI/EFI_OC/ReadMe/%E8%87%AA%E7%94%A8%E7%9D%A1%E7%9C%A0%E5%92%8C%E4%BC%91%E7%9C%A0%E5%8F%82%E6%95%B0/Hibernation%E6%A8%A1%E5%BC%8Fconfig%E8%AE%BE%E7%BD%AE%E5%8F%8A%E5%AE%89%E8%A3%85kexts.pdf

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在安装和配置git之前,需要注意一些先决条件。首先,您需要具备完成安装的技能。其次,在安装之前,您应该先查看存储库中的文件,并检查其中的设置和配置是否符合您的需求和喜好。请注意,这些文件是为MacOS的个人计算机而设计的,可能包含一些您不喜欢的设置和配置。 安装git的步骤如下: 1. 下载合适版本的git软件。您可以从官方网站上下载最新的git安装包。 2. 执行安装程序,并按照提示进行安装。在安装过程中,您可以选择自定义安装选项,以便根据您的需要进行设置和配置。 3. 完成安装后,您可以通过打开终端,并输入以下命令来验证是否成功安装了git:git --version。如果显示了git的版本信息,则说明安装成功。 接下来,您可以配置git的全局用户信息,以便将您的身份与git操作关联起来。您可以通过在终端中输入以下命令来配置用户邮箱信息:git config --global user.email "[email protected]"。请将"[email protected]"替换为您自己的邮箱地址。 完成这些步骤后,您的MacOS系统就已经成功安装和配置了git,您就可以开始使用git进行版本控制和代码管理了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [dots:MacOS配置文件](https://download.csdn.net/download/weixin_42101237/16630017)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [macOS系统下载和配置git教程](https://blog.csdn.net/hzyhfxt/article/details/89245416)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [mac git安装和配置](https://blog.csdn.net/github_38571976/article/details/119242864)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值