Apple - rMBP kernel_task spikes when connecting more than one external monitor
According to Rhys Oxenhams:
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 he mentions on his blog should work for earlier Macs. For Ivy-Bridge Macs and a little earlier Richard Schwarting has found the appropriate file to disable. Instructions are included below for convenience. 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)
sudo touch /System/Library/Extensions/
Restart
sudo reboot
- After installing OSX updates you may need to repeat the above procedure if the updates have re-created the
kext
.
Update for (High) Sierra:
TL:TR
Rename IOPlatformPluginFamily.kext/ACPI_SMC_PlatformPlugin.kext/[MacModelIdentifier].plist
Step by step:
- Start intro Recovery Mode (press CMD + R while startup)
- Utility > Terminal
csrutil disable
(Disable system file protection) - Restart and rename
/System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents/Resources/[MacModelIdentifier].plist
(Mac > About > System Report > Model Identifier) tobugfix.plist
(or something else) - Restart and check if
kernal_task
process is down below 10% - If successful restart again in Recovery Mode and enable system protaction again with
csrutil enable
Tested and worked for me at 10.13.2 on Early 2011 MacbookPro.
Source with pictures (german) http://www.couchpiratin.de/mac-zu-langsam-kernel_task-cpu-fehler-beseitigen/