Disable tailspind and spindump to Speed Up your Mac
Apple's macOS High Sierra introduced enough performance enhancements that my dual-core, 2011 MacBook Air felt like it had new life breathed into it. Occasionally, though – and more and more frequently recently – events would cascade such that my CPU would run at full tilt for 5-10 minutes before finally settling in. When that was happening, Activity Monitor and/or iStat Menus would show two system processes chewing up CPU: tailspind and spindump. Time to figure out how to stop that!
Research led me to these two very loosely-defined scenarios where tailspind and spindump would decide to run1:
- An application asks tailspind and spindump to take a snapshot of the state of that application and write it out to disk, or;
- Some application or process would consume maximum CPU for some period of time (30 seconds seems to be the general consensus), and then tailspind and spindump would fire up to take a snapshot of what was going on for future debugging purposes.
It's this second case that kept happening to me, and possibly to you. The problem is that it would create a cascading scenario of constrained CPU resources where one app would run, then spindump/tailspind would run, consuming CPU of its own, causing other apps to run for too long, causing spindump/tailspind to fire up again ... and so on and so forth. This would go on until finally everything had finished. In the interim it would be tailspind and spindump consuming a majority of the CPU while the processes you actually want to run tried to squeak by.
I looked at the logfiles created by spindump/tailspind and they (basically) told me what I already knew: some process needed a significant amount of work done and my 6-year-old CPU took longer than some pre-set limit to do it.
I certainly don't need extra CPU resources dedicated to telling me that something I've decided to run is using the CPU. I know that already. I run Activity Monitor and can see it. And, generally-speaking, the "why?" behind the extra CPU usage is already known, too.
Given this, I set about disabling spindump and tailspind, and my life has been blissful ever since. My MacBook Air wakes up quickly and is immediately responsive. Reboots are no longer something I dread, battery life is much better, and, quite frankly, my machine is fully usable again. It feels like I rewound 4 years in terms of general usability.
Disabling tailspind and spindump on macOS High Sierra
macOS High Sierra2 includes System Integrity Protection, which means that certain files are untouchable and uneditable. This has the benefit of helping keep your system files pure and malware-free, with the cost of flexibility.
To disable tailspind and spindump we need that flexibility, and that means temporarily disabling System Integrity Protection (SIP). To disable SIP:
- Boot your Mac into Recovery Mode by restarting with Command-R held down until the Apple logo appears.
- Once your Mac is in Recovery Mode, go to Utilities > Terminal.
- In the Recovery Mode Terminal, issue
csrutil disableand press return.
- Reboot your Mac.
Once SIP is disabled, the steps to disable tailspind and spindump are pretty straightforward3. Launch Terminal and type/paste the following four commands. The first two turn off and render spindump useless, and then the second two do the same for tailspind:
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.spindump.plist
sudo mv /System/Library/LaunchDaemons/com.apple.spindump.plist /System/Library/LaunchDaemons/com.apple.spindump.plist.bak
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.tailspind.plist
sudo mv /System/Library/LaunchDaemons/com.apple.tailspind.plist /System/Library/LaunchDaemons/com.apple.tailspind.plist.bak
Make sure to re-enable SIP when you're finished by performing the steps to disable SIP (in Recovery Mode again), and issuing
csrutil enable as step #3.
That's it. From this point forward, tailspind and spindump will be disabled and will not run on your Mac4. It's advisable to check these after macOS upgrades as it's entirely possible that an upgrade could re-enable these processes without any warning.
- Apologies to those who are more technically-minded about the functions of tailspind and spindump–I'm playing fast and loose just to make a point.
- I've only tested this on macOS High Sierra, but macOS Sierra also contains these same processes.
- I borrowed the concept from pwnsdx's disable.sh over on GitHub if you want to look at disabling more than just these two.
- Developers may want tailspind and spindump running, so be aware of the consequences.
Wow really cool. I won’t be doing it but but this is a really good thing to store away in the minds utility chest. Thanks Dave.
Fantastic write up! Thank you for posting this on the facebook group. I am going to issue those commands even though after a referral to the console logs I don't see telltale signs but I had total crashes recently. I mean total, beachball stopped animating and clock time separators stopped blinking — damn those logs are not what they use to be huh?
Thanks again Dave, great investigative work!
Dave, during your researches did you happen across anywhere that describes tailspind and spindump in more detail ?
Check the links inside footnote number 4 - those should help explain.
Possibly very helpfull, but before I try: how can you enable both processes again in case some critical applications rely on it?
great tip ... makes my 2008 MacBook Pro run like new ... thank you!
Thank you for this tip. I followed the steps in the article for my 2011 iMac running Sierra, and the result was a dramatic increase in speed.
My soon-to-be-seven year old computer actually feels snappy now.
Dave first of all thank you for this tip. I have been wanting to implement it but not sure how to reverse if I have issues after doing it. So it might be helpful if you could update the article with reversal instructions which I guess would be just to go into Terminal and type: csrutil enable.
@BruceL - Simply typing csrutil enable will NOT reverse the change. You must reverse the 4 steps that you did to disable the processes. Note that SIP must be disabled in order to do these.
sudo mv /System/Library/LaunchDaemons/com.apple.tailspind.plist.bak /System/Library/LaunchDaemons/com.apple.tailspind.plist
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.tailspind.plist
sudo mv /System/Library/LaunchDaemons/com.apple.spindump.plist.bak /System/Library/LaunchDaemons/com.apple.spindump.plist
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.spindump.plist
General Disclaimer: I am not responsible if you screw up your machine by doing the above.
Thanks for this. I use a lot of processor-intensive photo software and my MacBook performance has been awful since upgrading to High Sierra. Applied the fix and it is now working like a charm again.
Hey guys, I'm having troubles completing this process and wonder if I can get some help please. When I put the commands into Terminal it keeps coming up saying 'Password' Not sure what the deal is?? Help
Hey guys, I’m having troubles completing this process and wonder if I can get some help please. When I put the commands into Terminal it keeps coming up saying ‘Password’ Not sure what the deal is?? Help