Storage

How to check your Mac's SSD health

macOS only tells you the SSD is "Verified". For real wear numbers (how much has been written, how much life is used) install smartmontools and read the drive's NVMe health log. It takes two minutes.

The built-in check (limited)

diskutil info disk0 | grep -i smart
   SMART Status:              Verified

Verified means the drive isn’t reporting a failure. Failing means back up now. That’s all macOS tells you; it says nothing about wear. You’ll see the same status in System Information › NVMExpress.

The real numbers: smartctl

Install smartmontools with Homebrew:

brew install smartmontools
smartctl -a disk0

disk0 is the internal SSD on Apple Silicon. If you get a permissions error, run it with sudo. The part you want:

SMART overall-health self-assessment test result: PASSED

SMART/Health Information (NVMe Log 0x02)
Critical Warning:                   0x00
Temperature:                        33 Celsius
Available Spare:                    100%
Available Spare Threshold:          99%
Percentage Used:                    2%
Data Units Read:                    123,456,789 [63.2 TB]
Data Units Written:                 98,765,432 [50.5 TB]
Power On Hours:                     4,812
Unsafe Shutdowns:                   37
Media and Data Integrity Errors:    0
Error Information Log Entries:      0

What each line means

FieldMeaningWorry if
Percentage UsedThe drive’s own estimate of rated endurance usedIt’s approaching 100%
Data Units WrittenTotal written to the drive. The bracketed TB value is the readable oneIt’s growing much faster than you’d expect
Available SpareReserve blocks left to replace worn onesIt drops toward the threshold
Available Spare ThresholdThe level the drive considers criticalSpare is at or below it
Media and Data Integrity ErrorsUncorrectable errorsAnything above 0
Critical WarningAny bit set signals a problemAnything other than 0x00
Unsafe ShutdownsPower cuts and forced shutdownsNot a health measure; often dozens

Each “data unit” is 512,000 bytes, which is why smartctl does the TB conversion for you.

Percentage Used can go past 100%. That doesn’t mean the drive dies at that moment; it means it has exceeded its rated endurance and is more likely to wear out. Some people have also questioned how accurately early M1 drives reported this field, so treat it alongside the written total, not alone.

How much is a lot?

Apple doesn’t publish write endurance for its SSDs. Consumer NVMe drives are commonly rated in the hundreds of terabytes written, with larger capacities rated higher. So:

  • Tens of TB after a few years: normal for a developer Mac.
  • Over 100 TB in a year or two, on a 256 GB drive: a lot. Check why.

The useful number is your rate. Note Data Units Written today and again in a week:

smartctl -a disk0 | grep "Data Units Written"

At 50 GB a day, you write about 18 TB a year. Compare that against the drive’s age and Percentage Used, and you’ll have a fair idea how long it has left at your current pace.

Reduce writes if they’re high

  • Memory pressure. Heavy swap is constant writing. If sysctl vm.swapusage shows many GB, see high swap usage on Mac.
  • Docker. Rebuilding images, database volumes and logs write a lot. Prune what you don’t need (free up space on a developer Mac).
  • Builds and installs. Fresh node_modules installs and Xcode builds write gigabytes. Reusing a package store (pnpm) and keeping DerivedData helps.
  • Find the writer. Activity Monitor’s Disk tab, sorted by Bytes Written, shows the processes responsible since boot.

External drives

smartctl works on many external NVMe and SATA drives too, but USB enclosures often block SMART commands. Run diskutil list to find the disk number, then smartctl -a disk4. If it fails, the enclosure doesn’t pass the data through; Thunderbolt enclosures usually do better.

Keep a backup regardless

SSDs often fail without warning, and on an Apple Silicon Mac a dead internal SSD means a logic board repair. Health numbers help you plan, but Time Machine or another backup is what protects your data.

Doing this with Stat Space

Stat Space’s Disk tab reads the internal SSD’s NVMe health directly, without Homebrew or sudo: wear (percentage used), terabytes written, power-on time and errors. It sits next to per-volume usage, read and write speed, and the top apps by disk I/O, so you can see which process is doing the writing. The Disk tab is free.

Questions

Can I replace the SSD in an Apple Silicon Mac?

Not practically. On most M-series Macs the storage is soldered to the logic board, and the few models with removable modules need Apple's tools to restore after a swap. Plan on keeping your data backed up rather than swapping the drive.

Is it normal for Percentage Used to be 0%?

Yes, on a newer Mac or one with light writes. It rises in whole percent steps as the drive's rated endurance is used up.

Why is my Mac writing so much to the SSD?

Common causes are heavy swap from low memory, Docker images and volumes, package installs, Xcode builds and Time Machine local snapshots. Activity Monitor's Disk tab, sorted by Bytes Written, shows which processes write the most.

Get started

Know what your Mac is doing, without adding to it.

Free, no account. Pro is $9.99 once for the first 100 buyers.