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:

  1. Open Activity Moniter, get the PID of cfprefsd
  2. Open Terminal, sudo fs_usage pid <PID>.

    I saw my bluetooth preferences file was getting smashed.

  3. 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.