Mac slow after an update: diagnose and fix it from the Terminal
A symptom-first walkthrough for a Mac that became sluggish after a macOS update: check disks, repair the filesystem, audit background agents, rebuild Spotlight, and confirm updates.
What this covers
If your Mac turned sluggish right after a macOS update, the usual suspects are a corrupted Spotlight index, filesystem errors left by the update, or background agents stuck in a bad state. Work through these steps in order: diagnose first, then fix, then verify.
Symptom
Identify your disks and volumes
After an update, slowness is often a storage problem: a nearly full or misbehaving volume. Start by listing every connected disk, its partitions, and its mount name so you know exactly which identifier (like /dev/disk3s1) your system volume lives on. You'll use that identifier in the next steps. You can tell it worked when you see a clean list including your startup volume.
See every internal and external disk, its partitions, and its /Volumes name from the terminal with one command.
$ diskutil listCheck the filesystem for errors
An interrupted or botched update can leave filesystem errors that make everything feel sluggish. Run a verify on the volume you identified in the previous step. This is read-only and safe. If the verify reports errors, run the repair command shown alongside this guide, then verify again until it comes back clean.
Run Disk Utility's First Aid from the Terminal — check a volume's filesystem and fix errors without the GUI.
$ diskutil verifyVolume /dev/disk3s1▾ Undo
$ sudo diskutil repairVolume /dev/disk3s1Audit what's running in your session
Updates sometimes leave user agents hung or crash-looping in the background, eating CPU. List your running launchd agents and look for entries with a PID of 0 or a nonzero last exit status — those are the ones misbehaving. If you spot a culprit, note its label; you can restart the whole session by logging out and back in rather than hunting further.
Use plain `launchctl list` to audit agents running in your user session with their PIDs and last exit statuses.
$ launchctl list | head -30Rebuild the Spotlight index
The most common cause of post-update slowness: macOS re-indexing your drive in the background, or an index corrupted mid-update. Erase the Spotlight database so it rebuilds from scratch. Expect high CPU and mds_stores activity for a while — that's normal. It worked once indexing settles down and Spotlight searches return correct results again.
Erase the broken Spotlight database so macOS re-indexes your drive from scratch.
$ sudo mdutil -E /Make sure no follow-up updates are pending
Slowness right after an update is sometimes fixed by a quick follow-up patch Apple shipped afterward. Use softwareupdate to list available updates and install any that apply to your system. When it reports no outstanding updates, you know the system is fully patched and the remaining fixes above have a clean baseline to work from.
Use the built-in softwareupdate CLI to list, download, and install Apple software updates without System Settings.
$ softwareupdate -l -i -a --list-full-installer-versionsHow to confirm it worked
After rebuilding Spotlight and installing any pending updates, day-to-day use should feel responsive again: apps open promptly, and activity settles down after indexing completes.
Undo everything
Every command above can be reverted. Run these in order to undo all of it.
$ sudo diskutil repairVolume /dev/disk3s1Review before running — some steps may not be independent.
Sources
- DISKUTIL(8) - macOS manual pageEvidence: The manual page text contains 'diskutil list' describing it as listing disks with their partitions and identifiers such as disk0s1.
- diskutil - Modify, verify and repair local disksEvidence: Documents the diskutil command with 'list' as its first documented verb for listing disks, including the 'diskutil list' syntax shown on the page.
- System Information User Guide for Mac - Apple SupportEvidence: Apple's reference for inspecting disks and volumes on macOS, including First Aid-style diagnostics.
- launchctl - Interfaces with launchd to manage servicesEvidence: Documents `launchctl list`: 'List all of the jobs loaded in their own domain' with PID, status and label columns; run without sudo it lists your user domain.
- launchctl(1) man pageEvidence: Man page for launchctl: the `list` subcommand prints the label, PID (or '-' if not running) and last exit status of each service in the caller's domain.
- SoftwareUpdate Command: How to update software in macOSEvidence: Documents softwareupdate -l to list, -i -a to install all available updates, and related flags.
- Update macOS on Mac - Apple SupportEvidence: Apple's guide to updating macOS; the Software Update mechanism behind the CLI is documented here.
- macOS mdutil command referenceEvidence: mdutil -E erases and rebuilds the Spotlight index store for the specified volume or directory.
Last verified: 2026-09-21
Related guides
A terminal-first walkthrough to find what is holding your external disk open on macOS and eject it safely, from quitting apps to forcing an unmount.
Find out whether your Mac's disk is healthy: check SMART status, rule out a full disk, verify the filesystem, and repair errors from the terminal.
A diagnose-fix-verify walkthrough for a full macOS disk: measure real free space, map APFS volumes, clear local Time Machine snapshots, and confirm the space came back.