High kernel_task CPU usage problem
Since there is no clear hint as to what's causing kernel_task
to use >200% CPU at boot, we need to start at first principles and examine what the kernel is doing. The way to do this is by collecting and analyzing a spindump. To do this:
-
Run the following Terminal command to enable kernel symbolication:
sudo nvram boot-args="keepsyms=1"
Make sure to copy-paste this so that you're entering straight quotes rather than curly/“smart” quotes. (If you get a general error, you will first need to disable System Integrity Protection. You can re-enable it after you're done with this investigation.)
-
Reboot your machine and don’t open any apps except for Terminal.
-
In Terminal, enter the following command, press Return, type in your password, but do not press Return again yet:
sudo spindump -reveal -noProcessingWhileSampling
-
Perform the minimum actions that are necessary in order to put the system into its high-CPU usage state. In your case maybe this just means waiting a few moments.
-
As soon as you begin to feel the slowness, go to the Terminal window where you entered your password and press Return so that the command begins to execute. Do not do anything else on the computer while it's running, otherwise you will distort the data collection.
-
After waiting for >10 seconds to collect a sample and another minute or two to symbolicate and format, you’ll get a file in
/tmp/spindump.txt
that contains a stackshot of every process. -
Upload the file to PasteBin or some equivalent place and add the link to it to your original question. We can take a look at it and come up with next steps for the investigation.