[MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports), 2.3 GHz Quad-Core Intel Core i7, 16 GB RAM, running Monterey 12.6.4]
kernel_task
consumes inordinate CPU periodically--around 100+% according to command-line top
utility. At the same time all apps using the network lose their connection--e.g. disconnecting Zoom and any other streaming data for 30 seconds to several minutes. As soon as kernel_task
drops from the top CPU process, the network resumes. Wi-Fi never drops, just the network traffic stops. This is very disruptive.
I was told that kernel_task
does this to cool the CPU because it is overheating. I moved the power connector to one of the right side ports to run cooler (as suggested). It made no difference. Resetting the SMC seems to reduce the number of occurrences, but it eventually happens again in a week or two.
I wrote some scripts to log CPU temperature, fan speed, system load, and when kernel_task
takes over. I'm getting CPU temperature and fan speed from running "powermetrics --samplers smc
" as root.
I discovered several interesting items:
kernel_task
almost never takes over (meaning 100%+ CPU use) when the CPU temperature is high.kernel_task
takes over at normal operating temperatures.- Fan speed doesn't change any differently with
kernel_task
taking over as ifkernel_task
doesn't do anything to fan speed. powermetrics
once showed a jump from 69C to 89C over a 5 second span while the fan speed increased by less than 1%. Having a heat-sink on a CPU would make this unlikely.- Laptop is 2 years old but
kernel_task
was not recognized as a problem until the second year. I don't recall network freezing at all during the first year.
From the above I'm thinking:
- We've been lied to about what
kernel_task
actually does since behavior (consuming 100+% of the CPU) doesn't seem directly correlated with CPU temperature. kernel_task
doesn't directly address overheating.powermetrics
might be lying about temperatures, fan speeds, and when they occur.- SMC is an unreliable mess.
kernel_task
unnecessarily throttles/shuts down network activity.
I don't really care about the temperature issues. I want kernel_task
to stop blocking my network connection at random times. Is there a fix for any of this besides replacing the hardware?