CPU usage is too high with Yosemite and an external monitor, kernel_task spikes to 600%+
After reading number of blog and days of internet search, the solution worked for me. The kernel will keep looping some very simple tasks, e.g. getting the date, therefore ‘consuming’ (with the highest priority) the majority of the CPU in a bid to cool the system down.
The solution mentions on other blog about removing ACPI_SMC_PlatformPlugin.kext, under /System/Library exist many kernel extensions, and the relevant one is the IOPlatformPluginFamily.kext. There suggestion was to disable the plist for your model of computer that was located in that kext’s Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext (a sub kext!). First, My MacBook Pro didn’t have a relevant plist, and second, disabling that entire kext (simply by renaming it to something else so Mac OS X wouldn’t find and load it) did not help, this should work for earlier Macs, not for newer Mac.
I have tried many things, but this works.
- Disable kext by renaming it
cd /System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/Plugins sudo mv X86PlatformShim.kext X86PlatformShim.kext.disabled
- Clear kext cache (not sure if this is needed)
You may get Operation not permitted error. Apple has enabled a new default security oriented featured called System Integrity Protection.
Turning Off Rootless System Integrity Protection in OS X El Capitan 10.11 +
Again, the vast majority of Mac users should not disable rootless. Disabling rootless is aimed exclusively at advanced Mac users. Do so at your own risk, this is not specifically recommended.
- Reboot the Mac and hold down Command + R keys simultaneously after you hear the startup chime, this will boot OS X into Recovery Mode
- When the “OS X Utilities” screen appears, pull down the ‘Utilities’ menu at the top of the screen instead, and choose “Terminal”
- Type the following command into the terminal then hit return:
csrutil disable; reboot
- You’ll see a message saying that System Integrity Protection has been disabled and the Mac needs to restart for changes to take effect, and the Mac will then reboot itself automatically, just let it boot up as normal
You can also issue the command by itself without the automatic reboot like so: