cfprefsd using > 90% CPU - any way to find out what program is using it?
This "fixed" it for me:
I noticed cfprefsd was hammering the disk - so I used fs_usage to track what it was writing:
- Open Activity Moniter, get the PID of cfprefsd
Open Terminal,
sudo fs_usage pid <PID>
.I saw my bluetooth preferences file was getting smashed.
So I disabled bluetooth and cfprefsd.
CPU usage dropped instantly to negligible levels.
I realise this is not fixing the root problem, but this made my previously unusable macbook air usable again, so I thought others might appreciate it.
It is possible that when we upgrade from Yosemite to El Capitan, our bluetooth settings are backed up and are read by the system.
I found that this was the file that had a few duplicates:
/Library/Preferences/com.apple.Bluetooth.plist
sudo removing all these files then doing a PRAM and SMC reset immediately worked for me!
PRAM and SMC reset : Shut down your Mac, press the power button, and as soon as you hear the startup chime, hold down Command+Option+P+R
OK, I just saw the same symptoms on a recently updated MacBook Pro 13" (2015 edition so the latest hardware). I updated to El Capitan and sometime soon after started noticing the slowness issue. I had noticed a cfprefs process hogging CPU but not enough to be causing the severe performance issues I was seeing (keyboard non responsive, etc.)
Turning off bluetooth indeed solved the problem IMMEDIATELY so I think you've found your link. Instead of leaving it off I turned it back on, deleted the one device profile that was connected (an external trackpad) and then re-paired. So far so good; not sure what the "actual" issue was but if this resolves it long-term then I think it's a reasonable workaround.