Skip to content

Why is my Mac's fan so loud? How to find the app causing it

By 4 min read

In short

A loud fan means something is keeping the CPU busy. Sort by CPU in Activity Monitor or run `top -o cpu` in Terminal, then group helper processes by app, because the real culprit is often spread across many rows.

A loud fan almost always means one thing: some app is keeping the CPU busy, and the chip is getting hot. Open Activity Monitor, click the % CPU column to sort, and watch the top rows for 30 seconds. Whatever stays near the top is your answer, or at least your first suspect.

That's the short version. The rest of this post covers where it goes wrong, the Terminal version, and what I do now.

How do I see what is using the CPU?

In Activity Monitor (Applications > Utilities), select the CPU tab and click % CPU until the arrow points down. Don't trust a single glance. CPU use jumps around, so watch for half a minute and note which names keep coming back.

In Terminal, the same thing:

top -o cpu -n 10 -l 2

-o cpu sorts by CPU, -n 10 shows 10 processes, and -l 2 takes two samples. Read the second one. The first sample reports CPU use since the process started, which is why a one-shot top often shows nonsense.

For a quick snapshot without the live display:

ps -Ao pid,pcpu,comm -r | head -n 11

-r sorts by CPU on macOS. The first line is the header, so head -n 11 gives you the top 10.

Why does the list not make sense?

Because modern apps are not one process. Chrome, Slack, VS Code and most Electron apps run a main process plus a pile of helpers, renderers and GPU processes. In Activity Monitor, they show up under names like Google Chrome Helper (Renderer), a dozen times each.

Two things follow from that:

  • No single row looks guilty. Ten helpers at 8% each is 80% of a core, but nothing in the list looks alarming.
  • Some names don't point to an app. node, python3 and WindowServer tell you what ran, not who asked for it.

So after sorting, I add up the rows by app in my head, which is tedious. If you do it by hand, add the %CPU of every helper whose name starts with the same app and compare the totals.

What if the CPU looks fine?

Sometimes the fan is loud and no single app is high. Check these:

  1. Is the Mac thermally constrained? Running in a closed clamshell, on a soft surface, or on a charging dock with a hot charger all reduce cooling. Fix the situation first.
  2. Is it the GPU or media? Video calls, external displays and screen sharing load the GPU and media engines, which don't show up as CPU.
  3. Is it the disk or network? A big sync or backup can keep several subsystems busy at once. Check the Disk and Network tabs.
  4. Is it a short spike? Spotlight indexing after an update, or Photos analysing a library, can run hot for an hour and then stop. If it settles by itself, leave it alone.

To see the thermal state macOS itself reports:

pmset -g thermlog

If it prints nothing about CPU limits, the system isn't throttling you.

How do I stop it?

Once you know the app:

  1. Quit it normally (⌘Q). Wait ten seconds.
  2. If it doesn't quit, select it in Activity Monitor and use Force Quit (the stop button). Save your work first.
  3. If it comes back on its own, something is relaunching it. Check Login Items in System Settings > General.
  4. If the same app does it every day, look for an update, or a specific tab, extension or project that triggers it. In a browser, I find the heavy tab by opening the browser's own task manager instead of guessing.

Don't force quit a process whose name you don't recognise without searching for it first. Quitting WindowServer logs you out, and kernel_task going high is usually the system protecting itself from heat, not the cause of it.

How I do it now

I got tired of adding up helper rows, so I built Binnacle, a Mac activity monitor for the menu bar. It groups processes by app, so Chrome is one row with its CPU, memory, disk, network, GPU and energy summed. The CPU page shows temperatures, fans and the top apps in one place. In the ⌘K command line, why chrome explains what that app is doing, and quit chrome closes it after a confirmation.

On Apple silicon Macs, Binnacle can also set a fan to a fixed speed, within the fan's own minimum and maximum, and it goes back to automatic when the app quits. I mostly use it to check that a fan is doing its job, not to run it hard.

It has a 14-day trial with everything unlocked. After that it's $9 once, and the menu bar readouts keep working for free. The Deck, the console where all of this lives, needs the license. It requires macOS 14 or later.

If Activity Monitor and the Terminal lines above answer your question, you don't need it. They answer it for most people most of the time. I built Binnacle for the days when I'd rather not do arithmetic across 30 helper processes to find out which app is hot.

Tom Shafer

Builds Laravel sites and small Mac apps at Shafer LLC, and writes here about what he learns doing it. About Shafer LLC

Get the newsletter.

What’s new, now and then. No spam; unsubscribe in one click.