Resolving systemstats CPU Usage Issues Causing Sluggishness in OS X
The systemstats process is used to retrieve information about system statistics and power usage, and though it usually runs unnoticed in the background, the systemstatsd and systemstats processes have been known to randomly go haywire in OS X, eating up 100%-300% or more CPU while slowing down a Mac.
Generally, there’s nothing to concern yourself with if you see systemstats spike up Activity Monitor or top for a short amount of time, and many standard Mac functions may cause it to temporarily appear. For example, the systemstats process is triggered on the MacBook line by looking at the Energy usage option from the OS X battery menu, and other users may see it briefly when adjusting other Energy settings. The problem arrises when the process is running constantly at very high CPU usage for no apparent reason, and that’s what we’re going to address here.
Killing the Errant systemstats Process
Simply killing the systemstats process works to resolve the CPU usage and slowness problem for almost all occurrences in OS X.
Terminal: For those who like using the Terminal for it’s speed, conquering the gone-wild systemstats process is just a matter of dumping out the killall command:
sudo killall systemstats
sudo is necessary because the systemstats process runs as root.
Activity Monitor: Many users will prefer to stay within the OS X GUI, and Activity Monitor also offers the ability to forcibly quit the process as well:
- Open Activity Monitor, use the “Search” feature to look for ‘systemstats’
- Select the errant systemstats process and choose the (x) button to force quit
- Repeat if there is more than one process running taking up inordinate amounts of CPU
This should immediately solve the problem, though if you’re continuously trying to access battery or system usage then you will see the process appear again.
If you continue to encounter the issue, resetting the SMC may resolve lingering problems.
Additionally, disabling App Nap may also resolve remnant and spontaneous problems with systemstats if they only occur upon system wake or boot.
This is not recommended and it may have unintended consequences beyond disabling property battery and power management monitoring, including the App Nap feature, but you can disable systemstats but unloading the daemon from launchd. This should be limited to advanced users only:
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.systemstatsd.plist
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.systemstats.daily.plist
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.systemstats.analysis.plist
Note this will also lead to an end of all the ‘powerstats’ reports from appearing further in Console System Diagnostic Reports.
Again, disabling systemstats is not recommended. Those changes can be reversed by reloading the daemon back into launchd with the following three commands:
sudo launchctl load -F /System/Library/LaunchDaemons/com.apple.systemstatsd.plist
sudo launchctl load -F /System/Library/LaunchDaemons/com.apple.systemstats.daily.plist
sudo launchctl load -F /System/Library/LaunchDaemons/com.apple.systemstats.analysis.plist
You’ll want to reboot the Mac for full changes to take effect, in either case.