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.
- 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
- 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">
- In the Terminal window, tap the Ctrl+O keyboard shortcut (that’s Ctrl, not Cmd!) and then hit Enter. Then tap Ctrl+X.
- 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
- 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.
Why don't you...
— Dip into our latest
— See our greatest hits
— Subscribe to our email newsflash & digest
— Click below to keep up to date with MKF
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 · #
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
— 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 · #
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’
— Giovanni · May 21, 02:24 AM · #
Giovanni, it still works fine on my system:
MacBook-Pro:~ keir$ sudo sysctl debug.lowpri_throttle_enabled=0
debug.lowpri_throttle_enabled: 1 -> 0
Are you definitely pasting in the correct command from the post above?
— Keir Thomas · May 21, 03:01 AM · #
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 · #