[GTALUG] War Story: Asus UX305ca SSD failures
D. Hugh Redelmeier
hugh at mimosa.com
Tue Aug 6 12:14:35 EDT 2019
| From: Lennart Sorensen via talk <talk at gtalug.org>
| A low end SSD can usually last 1000 writes. That is 1000 writes to
| every block and it does wear leveling.
There is the invisible problem of "write amplification". Does write
amplification count against the official endurance specifications? If
so, the user can have no real idea of where they are on the odometer.
Write amplification can get pathologically bad if the drive controller
thinks that the disk is close to full.
- manufacturers always "overprovision". They provide more flash
memory than is in the view of the disk that the computer sees. That
prevents the drive actually from filling up. I presume that cheaper
drives have less overprovisioning. The amount of overprovisioning
isn't something disclosed on spec sheets.
- using "trim" (see fstrim(8)) can inform the drive controller of
blocks that the filesystem considers deleted. This cannot be
inferred by the controller until the logical block is overwritten.
- the user can leave some of the disk space unused and this helps as
long as the controller knows that the space is unused.
Another thing that needlessly wears SSDs: updating access times in the
inodes of open files. This is needed for POSIX semantics but I think
that modern Linux systems default to being lazy about those updates (a
Good Thing). I could be wrong about this -- I haven't checked.
A purely log-structued filesystem would probably be good for SSDs.
More information about the talk
mailing list