3 min readJonas Höttler

WindowServer, mds_stores, kernel_task: what these processes actually do

The fan spins up, Activity Monitor shows a name nobody explains. What the twelve most common macOS processes do, when their CPU load is normal — and when it is not.

Every mark one process: direction gives its kind, distance from the centre the memory it holds.
Every mark one process: direction gives its kind, distance from the centre the memory it holds.

The fan spins up, you open Activity Monitor, and at the top sits mds_stores at 240 %. The name explains nothing, the column next to it explains nothing, and the web offers four forum threads with five contradictory suggestions.

Here is the short list of the names that actually turn up — and what they mean.

System

Ships with the operating system.

Applications

Things you opened.

Background

Helpers, agents, updaters.

Elsewhere

Running from somewhere unusual.

The circle is cut into four sectors that never overlap: a mark's direction means something before its colour does. Distance from the centre is memory held.

The twelve most common

ProcessWhat it doesHigh load is normal when …
WindowServerdraws everything visiblemultiple displays, video, lots of motion
kernel_taskthe system core; throttles on heatthe machine is warm or charging
mds, mds_storesSpotlight indexingafter an update, a copy, a large checkout
mdworker_sharedindividual indexing jobssame, in bursts
backupdTime Machinea backup is running
photoanalysisdPhotos: faces, places, objectsafter a big import, while idle
cloudd, birdiCloud syncafter signing in or a large upload
syspolicydGatekeeper checking signaturesthe first launch of a new app
nsurlsessiondbackground downloadsupdates, iCloud, App Store
coreaudiodaudioalways present, always low
distnotednotifications between processesbriefly, in spikes
launchdstarts and supervises everythingalways there, almost never loud

Anything beyond that list is either a program you recognise — or one that owes you an explanation.

Three patterns that deserve a second look

A process with a version number instead of a name. Helper (Renderer), com.example.updater.v2 — the name says nothing, the path says plenty. Identification runs through the path, not the process name.

A process running from a temporary folder. Anything running out of /tmp, /var/folders or the Downloads folder is not automatically malicious — installers and build tools look exactly like this. It is the short list worth reading.

A process with no valid signature. On macOS that is the exception. Not every exception is an attack (self-compiled binaries, older open-source tools), but every one deserves a glance.

Why a list without explanations does not help

Activity Monitor gives you names and numbers. What it does not give you is the sentence that turns a name into a decision. "WindowServer draws your screen" is that sentence. Looking it up costs you ten seconds — two minutes for twelve processes, an afternoon for the 198 running on an ordinary Mac.

That is exactly why BalaneDisk ships a localised explanation database: every known process gets one line of plain language, in English and German, next to the verdict — verified, unverified, suspicious. No comparable tool translates that part.

What to do at the next fan concert

  1. 01Read the name — and check it against the table above.
  2. 02If it is Spotlight, Photos or Time Machine: wait. All three are finite.
  3. 03If it is kernel_task: find the heat (charger, sunlight, blocked vents), not the process.
  4. 04If it is WindowServer with nothing moving: close windows until the load drops — the last one closed is the culprit.
  5. 05If it is a name you cannot place: read the path, check the signature, then decide.

Next: Memory pressure is not free memory.

Questions people ask
Why is WindowServer using so much CPU?
WindowServer draws everything you see. Its load rises with resolution, refresh rate, number of displays, transparency effects and the number of moving windows. Consistently high figures with nothing visibly moving usually point at a program redrawing constantly — often a browser tab or an Electron app.
Can I kill kernel_task?
No, and you would not want to. kernel_task deliberately occupies CPU time to slow other processes down when the machine is too warm. The high load is the countermeasure, not the problem — the problem is the heat.
Why does mds_stores run all the time?
mds_stores is Spotlight indexing. After an update, a large copy or on a developer machine full of node_modules folders it can run for hours. Adding those folders to Spotlight's privacy list helps far more permanently than any restart.
TopicsProcessesmacOSCPU

See it on your own machine.

Every screen in these articles is free to use, for as long as you use it.

Sources and links
Read on