First, check whether macOS recorded any heat
macOS keeps its own record of whether it has had to slow the chip down to shed heat — deliberately slowing it is called throttling. You can read that record without installing anything, and it takes a second.
% pmset -g thermNote: No thermal warning level has been recorded
Note: No performance warning level has been recorded
Note: No CPU power status has been recordedThis is a Mac that is not being held back — three "no record" notes. When macOS has recorded heat instead, you get lines such as "Thermal Warning Level" with a number beside it.
Three notes like those mean your Mac is not hot enough for macOS to act. The fans are ahead of the heat, not behind it, so the rest of this page is about what is running.
Fixif you do see a thermal or performance warning level, your Mac really is hot. Go to the overheating guide — the heat source and the airflow are the fix there, not anything below.
Something is holding your Mac awake
The fans run overnight, with the lid shut, or when you have not touched the Mac for an hour.
Apps can ask macOS to stay awake. A download, a backup, a video call, a screen-sharing session or a media app can all hold what Apple calls a power assertion — a standing request not to sleep. As Apple's manual for pmset puts it, whenever processes — programs running in the background — override the system's power settings, pmset lists those processes and their assertions. A Mac that never sleeps never fully winds down, and the fans follow.
% pmset -g assertionsAssertion status system-wide:
PreventUserIdleSystemSleep 1
PreventUserIdleDisplaySleep 0
UserIsActive 1
Listed by owning process:
pid 530(powerd): 00:07:18 PreventUserIdleSystemSleep named: "Powerd - Prevent sleep while display is on"
pid 22218(SomeApp): 08:18:08 NoIdleSleepAssertion named: "Electron"
pid 85358(caffeinate): 00:00:24 PreventUserIdleSystemSleep named: "caffeinate command-line tool"Read the part under "Listed by owning process". Each line names the program, then how long it has held its request — 08:18:08 is over eight hours. Same redaction as the process list below: real numbers, macOS's own names kept, app names replaced with neutral ones. The [0x…] assertion IDs each line carries are trimmed here for width. The powerd line is macOS itself and is normal while the screen is on.
A caffeinate entry is the clearest one to act on: it is a small command that exists only to stop the Mac sleeping, and something on your machine started it. A long-held entry from an app you are not using is the next best lead.
Fixsave your work in the app named on the line, then quit it. Wait a minute, run the command again, and check the line is gone. If the fans settle in the next few minutes, you have your answer.
A job that started and never finished
Activity Monitor looks calm, but the fans have run since a migration, a big import, or a macOS update days ago.
The % CPU column shows a fading average of the last few moments — the share of the processor a program is using right now. A job that grinds along at fifteen percent for three days barely registers there. The column that catches it is TIME: the total processor time a program has used since it launched.
% ps -axo pid,pcpu,time,comm -r | head -8 PID %CPU TIME COMM
1049 121.8 333:03.06 corespotlightd
55862 12.5 0:00.05 command-one
35944 7.2 40:20.34 AppOne
24060 4.0 4:01.16 Google Chrome Helper (Renderer)
1208 2.6 940:08.25 AppTwo
89980 2.2 185:11.69 AppThree Helper (Renderer)
55861 2.1 0:00.01 command-twoSorted by %CPU, highest first. TIME is minutes and seconds of processor time since launch, and it tells a different story: the fifth row shows only 2.6% but has 940 minutes — over fifteen hours — behind it, while the row above it has four. That is why you read TIME to find an endless job. This is one real run: the numbers and their order are exactly as the command printed them, macOS's own program names are kept, and everything else is replaced with a neutral name. Yours will show real ones, and full paths rather than short names.
The top row on that Mac is one of Spotlight's own programs, cataloguing files so search is instant — that work is called indexing. It runs hard after a migration or a big import and then stops. Days later it should not still be up there. To see whether Spotlight is switched on for your drive:
% mdutil -s //:
Indexing enabled. This tells you indexing is turned on for the drive. It does not tell you whether a pass is running right now — for that, take two TIME readings of Spotlight's own row a few minutes apart and see whether it is still climbing.
Fixtake two readings of the same program a few minutes apart. If TIME keeps climbing while you do nothing, that is your fan noise. Quit the app it belongs to, or restart the Mac to clear a stuck background job.
NoahNoah reads the throttling state macOS records, so it can say whether the system is holding the chip back — or that it could not get a reading. It also sees a list of what is running, ordered by each program's share of the processor right now. A job that has ground away for days at a low share can sit outside that list. You take the TIME readings yourself. Noah cannot read a temperature or a fan speed, and it cannot see the assertions list, so you run those two checks yourself.
Nothing is hot, nothing is running, fans still on
All three checks came back clean and the fans are still going, sometimes from the moment you power on.
Then the fault is in the fan control rather than in anything you can quit. Apple's advice for fans running fast on a Mac that is not under heavy use is short, and it differs by model.
- Apple silicon (M1 and later): close the lid, open it again, and if that does not settle it, restart the Mac.
- Intel Macs: reset the SMC, the low-level chip that manages fans — the overheating guide covers the per-model steps.
- Check the obvious physical one while you are there: vents clear, and the Mac on a hard, flat surface rather than a bed or a couch, which is what Apple recommends for temperature control.
Fixif the fans run flat out from the second you power on, before macOS has finished starting, book a hardware check. That pattern is a fan or sensor fault, not software.
The short version
pmset -g therm— no warning recorded means it is not heat.pmset -g assertions— quit whatever is holding the Mac awake.ps -axo pid,pcpu,time,comm -r— read TIME, not % CPU.- Still going? Close and reopen the lid, then restart. Intel: reset the SMC.
- Fans loud from power-on, every time? Have the hardware looked at.