← Blog

mds_stores high CPU on Mac: what it is and when it is normal

October 2026 • 5 min read

mds, mds_stores and mdworker are Spotlight processes, the file search on your Mac. They build and update the index Spotlight searches in. Indexing runs after a macOS update, when you connect a new disk, and when files change, and Apple warns that it can take hours or even days. While it runs, high usage by these processes is expected.

What mds, mds_stores and mdworker do

The man pages say little about these processes:

  • mds is the metadata server. It serves all clients of the metadata APIs, including Spotlight. It has no configuration, and you should not run it manually (man mds).
  • mdworker is the metadata server worker process. mds uses it to scan and index files as a volume is mounted or a file changes (man mdworker).
  • mds_stores has no man page. On my Mac it sits in the same Metadata.framework folder as mds. Beyond that I know nothing about it from primary sources.

In Activity Monitor the worker is called mdworker_shared, not mdworker. When I checked, my Mac had 13 of them, and the oldest had been running for under two minutes. That is a single snapshot: I did not track how often the instances replace each other.

When high usage is normal

Apple writes that indexing happens when you first set up your device, after you install a software update or upgrade, and as data changes, for example when you install apps that allow indexing or receive new email or texts (Apple: About Spotlight indexing and search results). Depending on the amount of data, it can take hours or even days. Later incremental updates are much faster. Indexing finishes sooner when the device is idle, plugged into power, and connected to Wi-Fi or Ethernet.

Apple does not say what exactly loads the CPU during that time. But according to the man pages, mds and mdworker do the indexing, so in those hours it is natural that their rows end up at the top of Activity Monitor. That is a conclusion from the descriptions, not a quote.

The same thing happens in other cases: you connected a large disk, copied or unpacked many files, or cloned a repository. All of these change files, and mdworker, per its man page, reacts to a file change or a mounted volume.

How to check whether indexing is under way

  1. Press Command-Space. If indexing is running, a progress indicator appears at the top of the Spotlight window (Apple: About Spotlight indexing and search results). If there is no indicator, Spotlight is not indexing right now.
  2. Open Activity Monitor, go to the CPU tab and type "md" in the search field. The list will keep processes with "md" in the name, among them mds, mds_stores and mdworker_shared. Sort by % CPU.
  3. For comparison: on my Mac during ordinary work mds used about 0.5% of the CPU and mds_stores about 0.1% (from ps, 2026-10-14). If yours hold tens of percent while idle and the update was long ago, compare it with the time frames from Apple above.
  4. If you prefer Terminal, mdutil -s / shows the indexing state of a volume. On my Mac it answered "Indexing enabled.", which means indexing is turned on. It does not show progress, so you cannot tell from it whether indexing has finished. The indicator from step 1 does that.

mdutil does not show how much is left until indexing ends.

What to do if indexing never finishes

  1. Wait. Plug the Mac into power and a network and let it sit idle: Apple says indexing finishes sooner that way. Apple's time frame is hours or even days.
  2. Update macOS. Apple lists this as the first step when Spotlight gives unexpected results.
  3. Exclude folders that change constantly. Open System Settings > Spotlight > Search Privacy, click the Add button and choose a folder or disk (Apple: Prevent Spotlight searches in specific folders or disks). Apple describes this as keeping those locations out of Spotlight searches. Whether it lowers the load from mds, Apple does not say, and I did not test it. There is a side effect too: if you exclude certain files and folders, you may not be notified when updates become available for some apps.
  4. Rebuild the index for a folder or disk. Use the same Search Privacy list: add the folder, after a few seconds select it and click the remove button, then click Done. Spotlight reindexes that location (Apple: About Spotlight indexing and search results). This causes load again for the duration of indexing, and Apple gives no time estimate.

The mdutil man page has harsher commands. For example, mdutil -E erases the local stores of the volumes you name and rebuilds them if appropriate. I did not run them: they change the index of a whole disk, and Apple's user documentation describes only the Search Privacy route.

What not to do

Do not quit mds or mdworker_shared to "fix" the load. Apple describes no such method, and in its guide to quitting processes it warns that other apps or processes that depend on a process could have problems (Apple: Quit an app or process in Activity Monitor). I did not test whether quitting would help when the index needs to catch up.

Turning indexing off with mdutil -i off to reduce load is not a good idea either. Without an index Spotlight has nothing to search in: that is a conclusion from what the index is for, I did not measure it.

How this relates to Aide

Aide lists the apps that crossed the load limit you set. mds, mds_stores and mdworker_shared are system processes, and they are not in Aide's list. So it will not tell you "this is Spotlight". It does something else: if no app in the list is loading your Mac, look at system processes in Activity Monitor, starting with mds. Aide does not speed up indexing and does not control Spotlight. More on the home page.

FAQ

Can I turn Spotlight off? The man mdutil page has options that turn indexing off for a volume. I did not run them. Without an index, file search on that volume will not work.

How long does indexing take after an update? Apple says hours to days, depending on the amount of data. There is no exact figure.

Why are there so many mdworker_shared processes? Per man mdworker, mds uses worker processes to index files. My Mac had 13 when I checked. The number of instances alone proves nothing, look at the total load in % CPU.

Is it normal for mds_stores to take memory? I found nothing about mds_stores memory in primary sources. On my Mac it held about 84 MB of resident memory (from ps).

Sources

Back to the blog