V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
easonl
V2EX  ›  MacBook Pro

使用 pmset 指令重新设定 Macbook 的休眠设定,减轻 Mojava 之后的系统合盖耗电的情况

  •  
  •   easonl · 2021-04-10 02:20:52 +08:00 · 3429 次点击
    这是一个创建于 1084 天前的主题,其中的信息可能已经有所发展或是发生改变。

    从升级到 Mojava 系统之后,就发现自己的 Macbook pro 如果在不关机的情况下,直接合上电脑,放置一天之后,掉电很严重,有时候甚至掉到没电,研究了很久,没发现个所以然,但估计是升级到 Mojava 以后,新的 OSX 系统中休眠机制的调整,导致了休眠过程中依然大量耗电。

    这里就要讲到 Mac 的默认休眠机制 hibernatemode Mac 电脑的 hibernatemode 有三个值,分别为:0/3/25 通过 pmset -g 指令,我们可以看到 hibernatemode 的当前值。

    其中:

    hibernatemode 值的定义为:

    • 0:是直接休眠不把内存镜像写入硬盘,唤醒时从内存恢复,是桌面版 mac 的默认设置;
    • 3:是把内存镜像写入磁盘的同时也给内存供电,直到电池临界值。唤醒的时候从内存唤醒,除非内存断电了那就从硬盘唤醒,速度可快可慢,取决于休眠多久,是移动版 mac 的默认设置;
    • 25:是把内存镜像写入磁盘,断开内存供电,唤醒的时候从硬盘读取,速度较慢。

    cUbyOx.md.png

    一般来说,桌面 Mac 系统例如 iMac, Mac Mini 等桌面型机器,hibernatemode 默认值是 0,因为是一直通电使用,所以采用了内存保持通电的方式。 而膝上型 Mac 系统,则默认使用 hibernatemode 3,用较为保守的设定。

    在 Mojava 之前的系统,我的 MBP 合盖以后,哪怕一周不开机,也只会掉少量的电,大约掉电在 15%-20%左右,但是 Mojava 之后,特别是现在使用 Bigsur,合盖掉电就越来越严重了。这可能变更默认的 hibernatemode = 3 设定有关 ,那么如果我们将休眠机制设定为 25,也就是说合盖以后,在硬盘保存内存镜像,而完全断开内存供电,是不是能减少掉电,尽管这样会牺牲一点启动时间,但我觉得不会慢太多。

    cUb0fJ.md.png

    OK,根据 pmset 指令的定义,我们只需要执行:

    sudo pmset -b hibernatemode 25
    

    其中参数 -b 指的是“在电池状态下的设定”

    pmset 命令
    -c 调节设定用于连接充电器的时候
    -b 调节设定用于使用电池的时候
    -u 调节设定用于使用 UPS 的时候
    -a 调节设定用于全部情景
    

    我们甚至可以断开休眠后的 wifi 链接,进一步省电。

    sudo pmset -b tcpkeepalive 0
    

    经过这样的设定以后,我们在电池供电的过程中,合上 Macbook,则会保存完内存镜像之后,几乎完全断电,连 wifi 都断开,进入最大的省电状态。

    2 条回复    2021-04-10 15:58:43 +08:00
    mankismi
        1
    mankismi  
       2021-04-10 10:14:17 +08:00
    我本身设置完 tcpkeepalive 0 后效果就很显著了~可以先尝试这 再改 mode
    IgniteWhite
        2
    IgniteWhite  
       2021-04-10 15:58:43 +08:00 via iPhone
    写的挺好的。
    拼写应该是 M o j a v e
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5204 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 01:23 · PVG 09:23 · LAX 18:23 · JFK 21:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.