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 disable
and 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.
Hey there, on Mac OS 11 (Big Sur) it is no longer possible to edit these files (even with SIP off)! Just wanted to let everybody know!
Dave, during your researches did you happen across anywhere that describes tailspind and spindump in more detail ?
I know this is an old post, but I wanted to point out that you can disable these services (or any other ones) without disabling SIP. You just need to use the newer
launchctl
syntax. Forspindump
andtailspind
, it would be these four commands:sudo launchctl bootout system/com.apple.spindump
sudo launchctl disable system/com.apple.spindump
sudo launchctl bootout system/com.apple.tailspind
sudo launchctl disable system/com.apple.tailspind
The
bootout
lines unload the service, and thedisable
lines keeplaunchd
from ever loading them again.If you ever want to reverse it, you would do this:
sudo launchctl enable system/com.apple.spindump
sudo launchctl bootstrap system /System/Library/LaunchDaemons/com.apple.spindump.plist
sudo launchctl enable system/com.apple.tailspind
sudo launchctl bootstrap system /System/Library/LaunchDaemons/com.apple.tailspind.plist
Thanks! This is great! Ive searched alot for this and your post is the ONLY one ive found that tells about this 🙂
Does anybody have direct experience that this procedure is still valid for 10.14.x Mojave?My 2012 MBPr is starting to feel like it can’t afford to waste any CPU cycles!
Those processes all seem to exist the same on my Mojave Mac, so yeah, if you’re seeing them slow things down I think this method would help alleviate that here, too.
@kiwigrahamYeah, I’m running Mojave on both my MBP’s. I can confirm.
Thx – I’ll try to follow through on this over the weekend!
Fantastic tip, thanks a lot!
– Alex
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
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.
@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.
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
If you are entering a command that has sudo in front of it, you may be prompted for your admin password.A word of caution and a disclaimer: do not enter commands if you do not fully understand what they are doing. MacObserver or the contributors to this forum are not responsible if you machine blows up in a flaming ball of fire because of something you enter in the terminal.
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.
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.
Thank you!
great tip … makes my 2008 MacBook Pro run like new … thank you!
Possibly very helpfull, but before I try: how can you enable both processes again in case some critical applications rely on it?
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.
Thanks Dave
(more detail than a Man page that is)
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!
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.