Massively speed up Time Machine backups

13 March 2016, 04:15


Time Machine and its network-equipped brother, Time Capsule, are superb innovations. They make backup seamless, invisible and easy. They’re also slow. Really slow. I’ve had to wait before I put my MacBook Pro to sleep sometimes while a backup finishes and, of course, the initial backup can literally take days.

Here’s how to fix that.

Open a Terminal window, which you’ll find in the Utilities folder within the Applications list, and paste in the following, typing your login password when prompted:

sudo sysctl debug.lowpri_throttle_enabled=0

This command prevents Time Machine’s backup process assuming a low CPU priority, allowing backups to complete insanely quickly. In fact, you’ll see MB and GBs tick past on the Time Capsule progress display in a second-by-second fashion (provided your Mac isn’t very busy with some other task).

Alas, this command is forgotten when you reboot. If you want it to stick around when you reboot, you’ll need to add a launch-time script, as follows.

  1. Back in the Terminal window, paste in the following single line (it might be split into two lines in your web browser – just highlight all lines at once, then copy and paste):

    sudo nano /Library/LaunchDaemons/nothrottle.plist
  2. You’ll open a document editor in the Terminal window. Copy and paste in the following chunk of code:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
    <key>Label</key>
    <string>nothrottle</string>
    <key>ProgramArguments</key>
    <array>
    <string>/usr/sbin/sysctl</string>
    <string>debug.lowpri_throttle_enabled=0</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    </dict>
    </plist>
  3. In the Terminal window, tap the Ctrl+O keyboard shortcut (that’s Ctrl, not Cmd!) and then hit Enter. Then tap Ctrl+X.
  4. In the Terminal window, paste in the following single line, which again might appear in your web browser as two or more lines:

    sudo chown root /Library/LaunchDaemons/nothrottle.plist;sudo launchctl load /Library/LaunchDaemons/nothrottle.plist
  5. Close the Terminal window.

Should in future you want to turn off this new command, type the following, which again is a single line:

sudo launchctl unload -w /Library/LaunchDaemons/nothrottle.plist

… And then reboot.


.




,

---

Leave a comment...

This is awesome.

FYI, the first terminal command needs a “-w” flag (at least it did on my mac)

sudo sysctl -w debug.lowpri_throttle_enabled=0

Alan Levine aka @cogdog · Mar 14, 08:19 AM · #

Hi Alan

Which version of OS X are you using? On El Capitan the man page for sysctl says…

“The -w option has been deprecated and is silently ignored.”

So just to confirm to readers, if you’re using El Capitan then you don’t need the -w on this particular command.

Keir · Mar 14, 08:56 AM · #

What limits this to Time Machine – as far as I can tell that is a global sysctl affecting all processes.

— Liam · Mar 14, 12:16 PM · #

Liam, it isn’t limited to Time Machine. However, several people have been using this trick for a while and it seems to have no impact on any other process.

Allegedly the throttling of processes in this way started in OS X 10.9. There’s a discussion here: https://groups.google.com/d/msg/comp.sys.mac.system/YMB8ATgsaaI/VyBHR8gozxQJ/

Keir · Mar 14, 12:59 PM · #

After entering the first command in Terminal, it returns the following

debug.lowpri_throttle_enabled: 0 -> 0

Is that normal?

— Gary L. Gray · Mar 14, 01:37 PM · #

Yes. It’s just tell you that the setting has been set. You can read the setting by typing

sudo sysctl debug.lowpri_throttle_enabled

and you should then see

debug.lowpri_throttle_enabled: 0

Keir · Mar 14, 01:53 PM · #

That’s all nice and fun but I’d actually just like to schedule a time for it to run and never outside that time. For some odd reason, Time Machine decided one day to start running first thing in the morning when I get to work and refuses to let go of my external disk to the point where I just pull the plug instead of waiting for it to finish if I need to be at a meeting.

— Eugene · Mar 14, 08:44 PM · #

Eugene:

TimeMachineEditor will help you do all that.

— Dale · Mar 14, 11:06 PM · #

Many thanks. This works very well.

I also found: http://apple.stackexchange.com/questions/212537/time-machine-ridiculously-slow-after-el-capitan-upgrade/219884

but i could not get that running.

Hopefully Apple is also interested in this solution….

akkres · Apr 5, 06:45 AM · #

The Launch Daemon is totally superfluous.
The points from 2 to 5 can be substituted by a more simple (and elegant) approach.
Open a terminal app, become root and type:
echo “debug.lowpri_throttle_enabled=0” >> /etc/sysctl.conf

— Faithful · May 9, 12:34 PM · #

Correcting to be more copy and paste friendly:
echo ‘debug.lowpri_throttle_enabled=0’ >> /etc/sysctl.conf

— Faithful · May 9, 12:38 PM · #

It works perfectly with 10.11.4 but with 10.11.5 the command disappear :(

GDMAC:~ giovanni$ sudo sysctl debug.lowpri_throttle_enable=0
sysctl: unknown oid ‘debug.lowpri_throttle_enable’

Any idea??

Giovanni · May 21, 02:24 AM · #

Giovanni, it still works fine on my system:

MacBook-Pro:~ keir$ sudo sysctl debug.lowpri_throttle_enabled=0
Password:
debug.lowpri_throttle_enabled: 1 -> 0
MacBook-Pro:~ keir$

Are you definitely pasting in the correct command from the post above?

Keir Thomas · May 21, 03:01 AM · #

Giovanni:

debug.lowpri_throttle_enabled not debug.lowpri_throttle_enable

Should do the trick.

— T Tague · May 23, 06:49 AM · #

Wow, I wish I could know your trick earlier. To be honest, I was sick of Time Machine backup dragging down my Mac performance. Though I’ve used an app called Time Machine Editor to decrease the frequency of backup, still not happy about it. Thanks for writing this awesome technique.

Nikki loves iMac · May 28, 03:45 PM · #

Hi there,

I use a MacBook Pro 13”, 2.4GHz 500gd (mid-2010) model and only upgraded to El Capitan from Mountain Lion last night. My experience with El Capitan has been slower, in general, but extremely slow when I attempt to make a backup of my Mac HD on my external time machine HD.

I saw your solution here, and successfully entered: sudo sysctl debug.lowpri_throttle_enabled=0 followed by my password.
Unfortunately, my time machine is still “Preparing Backup” despite a ~30-minute wait on my end. I got tired of waiting, skipped the backup, ejected my time machine, shut down machine, turned on again, and tried the entire process again….

But it’s still taking a long time “Preparing backup”. Why is this so? Any advice would be much appreciated asap. Thanks heaps.

— val · Jun 17, 09:19 PM · #

I get this message when I type the command into the terminal. That normal?

WARNING: Improper use of the sudo command could lead to data loss
or the deletion of important system files. Please double-check your
typing when using sudo. Type “man sudo” for more information.

To proceed, enter your password, or type Ctrl-C to abort.

rsjm · Jul 28, 03:39 PM · #

 
---