Question

I noticed that Big Sur 12.3 update notes mention that Hibernation support has been added for M1 Macs. I have an intel MacBook Pro and have never noticed an option to Hibernate.

In contrast to Windows machines, In Intel Macs the only available options are are Sleep, Shutdown, and Restart.

Was it helpful?

Solution

Except in the most general way it is better not to translate terms like 'hibernate' and 'shut down' from Windows to macOS. Macs does not 'hibernate' in the same way as older versions of Windows - it is better to think of macOS having stages of sleep. The final stage can be considered as hibernation.

Shutdown, too, is different on Macs and Windows. When you shut down Windows 10, it writes its state to disk (i.e. hibernates) ready for a rapid startup. On the other hand, macOS does a full shutdown, closing all applications, stopping system processes and halting.

Having got that out of the way:

On a MacBook there are these stages of sleep:

  • Sleep or memory sleep: This is what happens when you close the lid or let the computer idle for some time. Power to display, disk, and other systems is turned off;
  • Standby or Safe Sleep: Memory state is written to disk and after a certain period memory power is turned off (standard 3 hours);
  • Hibernation: All power is off, all state has been written to a disk image. You know this has happened if when you open the Mac you see the Mac icon, and then see a progress bar while it is loading state from disk.

Thus the macOS 'Sleep' action includes a hibernation phase as a final step. Mostly macOS avoids the final hibernation stage to ensure rapid start when opening the lid.

My Intel MacBook never hibernates - it probably would if I left it for many days with the lid shut (but not turned off).

Though I don't have an M1 MacBook, I suspect that allowing a hibernate state will not make a lot of difference in practice.

At this point the question is answered, but to continue a somewhat further:

The pmset command does have an option called hibernatemode which is just one parameter for controlling sleep. This can have 3 values (this is an extract from man pmset:

  • hibernatemode = 0 by default on desktops. The system will not back memory up to persistent storage. The system must wake from the contents of memory; the system will lose context on power loss. This is, historically, plain old sleep.

  • hibernatemode = 3 by default on portables. The system will store a copy of memory to persistent storage (the disk), and will power memory during sleep. The system will wake from memory, unless a power loss forces it to restore from hibernate image.

  • hibernatemode = 25 is only settable via pmset. The system will store a copy of memory to persistent storage (the disk), and will remove power to memory. The system will restore from disk image. If you want "hibernation" - slower sleeps, slower wakes, and better battery life, you should use this setting.

For MacBooks there are just the two values: 3 and 25.

My memory is that 25 was introduced about 15 years ago, but went out of favour for more recent Macs. It is strongly recommended not to use 25 as 1) it can cause issues when waking due to FileVault, and 2) makes for a slow restart.

To control the stages of sleep, it is best to leave hibernatemode as 3, and to modify other parameters of pmset. This is mostly to control the timing of sleep stages, but also whether the Mac wakes up for network activity whilst the lid is closed.

I am going to firmly consider tuning of sleep parameters as outside the scope of the question.

As a final point, you can investigate what macOS is doing while sleeping with one of these two similar commands:

pmset -g log | grep -e "Wake from" -e "DarkWake" -e "due to"

pmset -g log | egrep "\b(Sleep|Wake*|DarkWake|Start)\s{2,}"

You may be surprised at how much activity is going on whilst asleep.

OTHER TIPS

This behaviour is one of the options when you close the lid of your laptop. There are two modes:

hibernatemode = 3 by default on portables. The system will store a copy of memory to persistent storage (the disk),
         and will power memory during sleep. The system will wake from memory, unless a power loss forces it to restore from
         hibernate image.

hibernatemode = 25 is only settable via pmset. The system will store a copy of memory to persistent storage (the
     disk), and will remove power to memory. The system will restore from disk image. If you want "hibernation" - slower
     sleeps, slower wakes, and better battery life, you should use this setting.

Presumably, the latter optional mode is now available on M1 Macs. It has been on Intel Mac for many years. But it's not something you'd noticed in the GUI: it's a command line option for the pmset command.

Hibernation mode is activated when you fully close the laptop lid for a little bit. Hibernation mode is turned off when you open the lid.

Usually its seamless enough that you don't notice its happening. It's not always that smooth on windows due to the larger number of drivers and compabtability issues that windows has to deal with.

Licensed under: CC-BY-SA with attribution
Not affiliated with apple.stackexchange
scroll top