Mac Performance Guide

kernel_task using high CPU on Mac

Short answer

When your Mac gets too hot, macOS makes kernel_task look busy on purpose: it schedules idle time on the CPU so other processes get less of it and the chip cools down. The CPU it "uses" is time the other apps did not get. Killing it is impossible (it is the kernel) and would not help. The fix is to reduce heat and load.

Confirm it from the terminal

kernel_task is PID 0, and ps does not list it. Use top, and take two samples, because the first one prints 0.0 for everything:

top -l 2 -n 10 -o cpu -stats pid,command,cpu,user

Read the second block. On a busy Mac it looks like this:

PID    COMMAND          %CPU USER
606    WindowServer     63.7 _windowserver
558    mds              35.4 root
0      kernel_task      33.3 root

Then ask macOS whether it has recorded thermal trouble. This needs no sudo:

pmset -g therm
Note: No thermal warning level has been recorded
Note: No performance warning level has been recorded
Note: No CPU power status has been recorded

That is a cool Mac. If it reports a thermal or performance warning level instead, the Mac is under thermal pressure and kernel_task is doing its job. sudo powermetrics --samplers thermal -n 1 also reports the current thermal pressure level, but it needs sudo.

Why it happens, and what to do

kernel_task is also where the kernel's own work is counted, such as drivers and heavy disk or network I/O, so a moderate number is normal. A large, persistent number together with a warm Mac is the thermal case.

The easier way: GaugeMon

GaugeMon's Temperature and CPU gauges sit in your menu bar, so you see the Mac heating up before kernel_task starts throttling. The Processes window sorts by CPU or by power in watts and, with the optional helper, fills in the real numbers for root processes like kernel_task too.

GaugeMon's Processes window sorted by CPU, with per-core meters and load average at the top
Download GaugeMon free trial Learn more

Related guides