Speed Up Time Machine by Removing Low Process Priority Throttling

on August 21st, 2018 by Hades | No Comments »

It’s well known that all Mac users should set up Time Machine to automate backups of their computer, and while most Mac users let OS X go about backing up to Time Machine at its own pace, which sometimes borderlines on glacial, some users may wish to speed the backup process up a bit. With the help of the command line, you can do just that and dramatically speed up the Time Machine backup process, but there are some major caveats to this trick because it applies beyond Time Machine, making it appropriate for advanced Mac users only, and used on a limited basis.

First, understand that Time Machine is meant to run in the background automatically, and to not be a total nuisance it runs at a reduced priority so that it doesn’t consume all available system resources to get the job done. This makes the Mac usable while Time Machine is backing up, but it has the downside of making Time Machine taking longer than it theoretically could. The way this trick works is by removing that reduced priority, but, the caveat with this approach is that it impacts more than simply Time Machine, it removes the low priority throttle from anything at the kernel level. Thus, this is why it’s only recommended for advanced users, and for limited use cases because you could easily find yourself with all sorts of tasks taking up inordinately high CPU as a result. This is why this is not really a recommended approach, and no, this is not intended to be a solution for when a Time Machine backup is going slower than it should, which typically requires minimal troubleshooting to resolve.

Don’t mind the caveat and potential issues with adjusting processor priority? Then launch Terminal app found in /Applications/Utilities/ and run the following command:
sudo sysctl debug.lowpri_throttle_enabled=0
Using sudo requires the admin password as usual, once entered the effect is immediate. You can either let a backup begin on its own, or manually start one yourself.

If you run this command and check the time remaining on a backup you’ll notice the number remaining should speed up considerably, but CPU use goes way up for the backup daemon and Mac performance takes a hit.

The change can be reversed with a reboot, or by issuing the following command syntax in the terminal:
sudo sysctl debug.lowpri_throttle_enabled=1
If you like the general idea behind this and don’t mind taxing CPU to complete backups with Time Machine, a better approach would be to target Time Machine and backupd directly, you can adjust an apps CPU priority specifically with an app like renice or if you’re savvy in the command line, directly with the nice and renice commands themselves. We’ll cover the renice command separately in a separate article, but in preliminary testing, it certainly works to achieve the same objective, but on a limited basis to Time Machine processes.

Remember, this is not a solution to slow Time Machine backups in general, which can be fixed through troubleshooting methods.

And if you really love this idea and want to have it enable itself automatically after a reboot, you can drop this plist file into
/Library/LaunchDaemons and load it with launchctl, but we do not recommend doing that.

<?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">
<!-- Copy under /Library/LaunchDaemons and issue sudo launchctl load /Library/LaunchDaemons/fix-el-capitan-slow-time-machine-speed.plist -->
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>fix-el-capitan-slow-time-machine-speed</string>
    <key>ProgramArguments</key>
    <array>
      <string>/usr/sbin/sysctl</string>
      <string>debug.lowpri_throttle_enabled=0</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
  </dict>
</plist>

 

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.