MacBook Hibernation Weirdness

My new MBP (ML 10.8.2) has an unexpected morning behavior.  Instead of just popping the lid and getting started, I’m now treated to the “wake from hibernation” screen, and it takes a minute or two to get working.
Image of wake up progress bar
Apparently there’s some new power management thing going on,  so it’s time to poke around in the power management settings, if only to understand what’s going on.  You can see all your current power management settings from Terminal using “sudo pmset -g”. You will need to enter your admin password.

Here’s the pmset -g result on my MacBook Pro:
Active Profiles:
Battery Power        -1
AC Power        -1*
Currently in use:
standbydelay         4200
standby              0
womp                 1
sms                  1
hibernatefile        /var/vm/sleepimage
gpuswitch            2
halfdim              1
networkoversleep     0
disksleep            10
sleep                0 (sleep prevented by )
autopoweroffdelay    14400
hibernatemode        3
autopoweroff         1
ttyskeepawake        1
displaysleep         0
acwake               0
lidwake              1

This is all very interesting and worth reading through the man pages (“man pmset”). For my situation, I believe the issue is “autopoweroff” (the man page for pmset is silent on autopoweroff and autopoweroffdelay), which apparently sends the Mac into hibernation, after saving the contents of RAM, after the “autopoweroffdelay”.   The default autopoweroffdelay is 14400 (seconds), which is four hours.  Setting autopoweroff to 0 would turn it off, which I do not think would be desirable.  You want the system to hibernate after a reasonable interval in order to maximize battery power.  But I want more than 4 hours before hibernation, since it takes rather a long time to wake up, especially if you have a bunch of things open when the system sleeps…
open apps
I changed my autopoweroffdelay to 12 hours (43200 seconds), so the system will not be in hibernation after I wake up from my own personal slumber, which is somewhat less than 12 hours.  If the system is inactive for more than 12 hours, it will still save the contents of RAM to the hard disc, hibernate, and save battery power. The command from Terminal is “sudo pmset -a autopoweroffdelay 43200”  I tested this with shorter settings for autopoweroffdelay, and confirmed that this addresses the problem. The -a option for pmset applies the settings to both ac and battery operation; you could be more granular if you like.

Leave a Reply