[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