On HFS+, something is wrong for a less than TB sized Apple SSD to take 30 minutes to run a check. On APFS, it's slightly more complicated. Depending on how many snapshots you have, this might be normal but you'll need to get some details to know.
If you're on APFS - you'll need to look at the logs or enter to the command line to determine how many snapshots of the volumes exist. If your fsck
is taking 2 minutes to run, but you have 30 snapshots - there goes an hour on a full fsck
and no "problem" other than perception. On the other hand, an hour to check one snapshot and you're back in "this is taking longer than usual by dozens of times".
I would get all the files backed up before you try to run the repair since a slow check almost always happens when storage is failing (but doesn't always correlate and certainly doesn't cause the failure itself).
At this point once you're backed up, you can take the fast path or the slower one:
Fast path - download the OS installer you want (High Sierra or whatever) and wipe the drive. When you are booted from an external USB, repair the drive twice to see if the second pass is faster than the first.
If you have issues with a wiped / empty drive - you can seek hardware service knowing that your data is backed up.
The slower path is to still boot from another drive and just repair the drive. You might get a good read of the speedup or if your data and drive really take 30 minutes to check all the system structures.
Booting to single user mode also might help in the short term and run /sbin/fsck -fy
twice from the black screen to see if trimming the free blocks can help the storage allocate storage more efficiently.
On my MacBook that's been running High Sierra for quite some time, the single mode filesystem check reports 19 snapshots and that matches up with Time Machine:
tmutil listlocalsnapshots / | wc -l
The above list of local snapshots belonging to Time Machine counts 18 lines of output. None of the snapshots are more than an hour old as my Mac runs normally on power, with the external time machine destination connected so the snapshots cover the last day or so. I have seen it grow to 35 snapshots when I'm traveling and not doing hourly backups to the main time machine destination drive. They clean themselves up as far as I've observed in all cases.