Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

kissmo

Cancelled
Original poster
Jun 29, 2011
1,062
1,055
Budapest, Hungary
I have had some big issues as it comes to battery life with Catalina on my MBP 15inch 2018.
My battery would not last more then 3-4 hours from 100% to 40% when in the past I could use for 6 hours straight on web browsing and email checking. Also, battery would drastically drain when in sleep mode.

My MBP Config:
Core i7 2.6 6Core
16 GB DDR4
Radeon Pro 560X

My battery health dropped from 99% to 95% in a very short time because of this.
I thought it was the processes I am running after making the upgrade and I was ready to try a painful clean install. I said painful because I have a lot of apps that would require re-activation and so on... and I was not in the mood for it.

Nevertheless, I started searching over the web for solutions and I found a youtube video where someone shared a suggestion that delivered the fix for me and those who face the same problems may feel free to try.
I am attaching the Terminal commands from the video:

sudo pmset -b tcpkeepalive 0
sudo pmset hibernatemode 25

To revert the changes:
sudo pmset -b tcpkeepalive 1
sudo pmset hibernatemode 3


I think for me it was the tcpkeepalive that killed my machine but I switched the hibernatemode as well since I usually shutdown my mac when not in use.

Hope it helps if someone faces the same problems and let me know if you have other suggestions.

These commands have made my mac normal again, I am only disappointed in the battery health drop.
 
I have had some big issues as it comes to battery life with Catalina on my MBP 15inch 2018.
My battery would not last more then 3-4 hours from 100% to 40% when in the past I could use for 6 hours straight on web browsing and email checking. Also, battery would drastically drain when in sleep mode.

My MBP Config:
Core i7 2.6 6Core
16 GB DDR4
Radeon Pro 560X

My battery health dropped from 99% to 95% in a very short time because of this.
I thought it was the processes I am running after making the upgrade and I was ready to try a painful clean install. I said painful because I have a lot of apps that would require re-activation and so on... and I was not in the mood for it.

Nevertheless, I started searching over the web for solutions and I found a youtube video where someone shared a suggestion that delivered the fix for me and those who face the same problems may feel free to try.
I am attaching the Terminal commands from the video:

sudo pmset -b tcpkeepalive 0
sudo pmset hibernatemode 25

To revert the changes:
sudo pmset -b tcpkeepalive 1
sudo pmset hibernatemode 3


I think for me it was the tcpkeepalive that killed my machine but I switched the hibernatemode as well since I usually shutdown my mac when not in use.

Hope it helps if someone faces the same problems and let me know if you have other suggestions.

These commands have made my mac normal again, I am only disappointed in the battery health drop.
Shutting down the machine when not in use means that all of the housekeeping that the system does is limited - can only happen while you use the machine. Have you tried keeping the machine powered up all the time and just close the lid when not in use?
 
Shutting down the machine when not in use means that all of the housekeeping that the system does is limited - can only happen while you use the machine. Have you tried keeping the machine powered up all the time and just close the lid when not in use?

Throughout the day I do all the time.
At night I shut it down and charge it.

After changing tcpkeepalive and the sleepmode values, I am running smooth and battery life is great again.
 
Throughout the day I do all the time.
At night I shut it down and charge it.

After changing tcpkeepalive and the sleepmode values, I am running smooth and battery life is great again.
Well, seems your problem is solved and that's all that matters. Good to hear things are going well again.
 
Well, seems your problem is solved and that's all that matters. Good to hear things are going well again.
Yes, I wanted to share with others who might have the same problem.
[automerge]1579986705[/automerge]
Would this help on older Macbooks ?
Give it a shot. You can always revert - maybe backup your machine before. I don't want you cursing me if something goes wrong :) although it shouldn't... but better to be safe than sorry as the saying goes.
 
Found some info about hibernatemode
  • 0 - hibernatemode OFF;
  • 3 - hibernatemode ON, memory dump will be copied to HDD (SSD), but computer will not powerdown;
  • 25 - hibernatemode ON, memory dump will be copied to HDD (SSD), computer will powerdown;
 
Found some info about hibernatemode
  • 0 - hibernatemode OFF;
  • 3 - hibernatemode ON, memory dump will be copied to HDD (SSD), but computer will not powerdown;
  • 25 - hibernatemode ON, memory dump will be copied to HDD (SSD), computer will powerdown;

Cool! Thanks for the info, at least now I understand what I did :)
 
  • Like
Reactions: Alxjzx100
On my MacBook 2016, the battery lost lots overnight. I adjusted tcpkeepalive to be zero. This stops the Mac half waking to do things like checking for new mail.

I have not needed to change hibernatemode from the default of 3. I don't think changing it to 25 makes much difference to battery drain, but is does make startup slower. I recommend leaving it at 3. YMMV.

For monitoring, one or other or both of these commands will show you how, when and why it changed sleep state overnight (whilst the lid is closed).

pmset -g log | grep -e "Wake from" -e "DarkWake" -e "due"
pmset -g log | egrep "\b(Sleep|Wake*|DarkWake|Start)\s{2,}"
[automerge]1580015454[/automerge]
Found some info about hibernatemode
  • 0 - hibernatemode OFF;
  • 3 - hibernatemode ON, memory dump will be copied to HDD (SSD), but computer will not powerdown;
  • 25 - hibernatemode ON, memory dump will be copied to HDD (SSD), computer will powerdown;

Have a read of the Terminal command man pmset. Here is what it says with a few of my comments in [].

hibernatemode = 0 by default on desktops [was maybe?]. 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 [and on my iMac 2019 with Catalina]. The system will store a copy of memory to persistent storage (the disk), and will power memory during sleep [but everything else off or in very low power mode]. 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.
 
Last edited:
  • Like
Reactions: me55 and kissmo
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.