Sucking Up to kernel_task

Just after upgrading to Big Sur 11.4, has taken to stall every now and then with kernel_task taking up most of the CPU, which is tremendously annoying as it becomes unresponsive even when I’m using it as a souped-up thin client to access my corporate virtual desktop environment.

I can only partially blame the upgrade as warmer weather is in full swing , with my office warming up to 22oC early in the morning as sunlight streams in and slowly going past the 27oC mark as the day progresses. I know that kernel_task is actually trying to get the CPU temperature down, but it’s been bugging me that the (single) fan doesn’t turn on before kernel_task makes my life miserable.

The fan does work fine when manually triggered, but something seems to be amiss in the response curve, which is probably a sign that QA testing on older hardware isn’t a high priority for upgrades these days.

Thankfully, last year we had to get air conditioning to make it survivable, and cooling down the entire office does seem to help but is a pain as I dislike air conditioning and prefer to have a window open unless it is way above 30oC.

So this weekend I tried the usual voodoo trick of resetting the SMC, which in the 27-inch, 2017 iMac involves unplugging the power cord for 15 seconds, plugging it back in and waiting at least 5 seconds before powering on again.

I did that twice without any noticeable effect, and decided it was time to bring out the big guns.

Dust In a Vacuum

has a pull-through airflow design that sucks air in from intakes under the “chin” and blows it out the back, somewhat foolishly under the curve of its base. This leads to dust sticking around the exhaust due to airflow being partially blocked, and just has to be an Ive-driven compromise to hide the vent slits (which in other models were a thin strip along the top):

Image Credit: iFixit. And yes, mine is one of the last models with upgradable RAM.

So for a first pass, I unplugged everything (which was a pain), set down the iMac on its display (which was an even bigger pain as the thing is huge, but fortunately I have a large IKEA cork desk pad), and busted out our vacuum cleaner.

I then ran it a few times across the intakes and the exhaust, cupping my hand to guide suction, and although it is impossible to gauge how much dust was cleared out, the slits now look squeaky clean and the machine hasn’t stalled even once all day, so I’d call it at least a partial success.

Measure Twice, Clean More Than Once

A more reliable way of assessing the results is that CPU temperature seems lower (at least 5oC), but only time will tell as the weather is cooler today and I never bothered with monitoring it systematically (only when I tried forcing the fan to run).

So I just started plotting out temperature charts, and ordered a couple of compressed air cans so I can do a push/pull flow on both sides of the air intakes and hopefully dislodge even more dust.

I’ll probably clean out a couple of keyboards as well while I’m at it…

Closing Thoughts: Future iMac Designs

After watching teardowns of the , and despite its design being fundamentally different, I really hope that the next 27” iMac has a better airflow design than both my iMac and the M1, which seems adequate for its logic board but might fall short once you jam twice the cores and RAM inside.

After all, the bottom intakes are in the ideal position to suck in dust from a desk surface without even trying, and that bugs me a bit.

I don’t live in an unusually dusty flat (although there has been an uptick in dust over the past year due to construction work across the street), but given our balmy weather and dust accumulation over time, I have to wonder how the M1 iMac would fare in my office in the long term.