58

I'm considering buying a 256 GB SSD. I've heard that they get slower as you fill them up with more than 75% of their capacity, owing to the mechanics of how they write data.

Question is: How much slower do they actually get if you get past the 75% mark?

Yes, I do intend to maintain it properly and ensure that I don't fill it to the brim, but I'd like to know just for knowledge's sake just how much slower they get. Are we talking about milliseconds or seconds? Will they still be much faster than a traditional hard disk?

Also, do they experience any problems with age?

65

As Bob mentioned in the comments, a lot has changed about SSDs in recent years. There's a few key technologies which fixed early performance issues. The tl;dr is don't worry about it, buy an SSD, the performance is astonishing. I have Samsung 850 EVO this 2011 Macbook Pro that keeps it purring along nicely.

SSDs are physically very different from spinning hard drives, but operating systems and filesystems have been built around the quirks of spinning disks. As a result, when SSDs were introduced there were some performance issues because the SSDs were being used inefficiently.

The big one is write amplification. When a file is deleted it isn't actually deleted, its space is marked free in the file system but the drive isn't told to actually delete the data. This saves a bunch of unnecessary time on a spinning disk. For a spinning disk writing to occupied space is just as efficient as writing to an unoccupied space. But an SSD must erase space before it can write over it. And it has to erase a much larger area than it can write to. When that happens it has to move any data in the section it's deleting somewhere else resulting in more writes. On a crowded disk all this deleting and rewriting gets expensive, and it shortens the life of the SSD.

One way this is avoided is with over-provisioning. This is the practice of deliberately leaving a chunk of space free on the SSD. It avoids write amplification by avoiding allowing the disk from getting too crowded. This is unnecessary today. Both the operating system and SSD itself will reserve sufficient space for over-provisioning.

The other solution is Trim. This is an extra command an operating system can send to the drive to let it know when data has been deleted. Then the SSD can be much more efficient about cleaning up old data and perform garbage collection when not in use. All major operating systems support Trim.

  • "Movi et somewhere else"—doesn't it just store it in cache? That's what the Wikipedia article about "trim" says. – Wildcard Aug 1 '18 at 2:31
  • 5
    @Wildcard Yes, the cache is "somewhere else". :) The write amplification process reads the 256K block from flash, write it to cache, erase the 256K block from flash, write the new 4K page to cache, and write the 256K cached block back to flash. That means writing just 4K might result in 256K being read, erased, and rewritten, that's the "amplification" part. Compare with a spinning disk's single step process of writing new data over the old. – Schwern Aug 1 '18 at 2:53
  • 2
    I too have a Samsung 850 EVO in mid-2012 MBP. And it boots up faster than my 2017 iMac which has default SSD from Apple’s SSD supplier. 850 EVOs are good. – displayName Aug 1 '18 at 3:42
25

Unless you plan on moving terabytes of data at a time, the impact would be negligible. Even at queue depth 32, which you would never see unless you are a workstation or sever user, the effects only manifest near 90% capacity, and even then only affect performance by a small margin. Even a 99% full SSD would still outclass an HDD by several orders of magnitude. Source: https://www.anandtech.com/show/6489/playing-with-op
SSD longevity has long been a source for concern from when the technology was introduced. However, modern SSDs have much improved write endurance. For example, a 960 PRO 2TB drive from Samsung has a write endurance of 1200TB, meaning the drive would have to be filled up and deleted 600 times before it failed. Not likely. As for age, the mean time to failure is 1,500,000 hours, or over 100 years. So unless you plan on constantly maxing out the write speed of an SSD for about 4 years straight, the chances you would see one fail are minimal.

  • 13
    If only the controller circuitry had a similar MTBF to the NAND. I sit here with a selection of bricked SSDs on my cluttered desk from various manufacturers pulled from servers over the years. Don't use ludicrous MTBF figures as an excuse to relax your backup regime. – Andy Brown Jul 31 '18 at 13:22
  • 1
    600 sounds low. How many times can a block(?) be written over? If it's almost full with storage data, and what's left over is used for files that change often, isn't it going to start to fail sooner because it's rewriting over the same blocks all the time? As I understand it, outright fail was never the concern. – Mazura Aug 1 '18 at 0:35
9

The only real answer is "it depends on the drive." As other answers have mentioned, the slowdown can be avoided with over-provisioning and smart controllers, but over-provisioning adds to the cost/GB, so cheaper drives won't over-provision much. 25% free space may be overkill but many drives will indeed slow noticeably when you go over 90%. And some drives, such as Intel Optane, are immune to this effect entirely (source: I work at Intel on Optane drives).

Fortunately, the end-of-life slowdown effect is well-known and tested by most reviewers. So if you look up the drive you're thinking of on some of the good hardware review sites, they'll have quantified how much the drive will slow down when you've filled it. I like Anandtech.com, but any tech review site that looks at storage should test this.

That said, even a slow, full SSD near the end of its life will most likely still be faster than a HDD. So if you're on a fixed budget deciding between a smaller SSD that you will fill vs. a larger HDD that will have extra space, the SSD will still be the faster choice.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.