Since the advent of NAND flash storage devices, flash wear-out has been an issue that receives significant attention. To address this issue, most SSD manufacturers have included SMART (self-monitoring, analysis and reporting technology) attributes to track the amount of usage the SSD has experienced, compared to the expected lifetime of the drive. Usually, this is recorded as an attribute described as “percentage of lifetime remaining,” or sometimes, “percentage of lifetime used.” In monitoring this attribute, the user is advised to start thinking about replacing an SSD as the counter starts to approach 0% lifetime remaining. But what does this counter mean during the rest of the SSD’s useful life? What does it mean to have 90% lifetime remaining, or 50%?
To understand why we even have a wear indicator, it’s important to know what causes SSD wear. At the most basic level, wear is caused by writing data, as in, saving files. Each time a NAND cell is written, it causes a tiny amount of wear. Eventually, after many, many writes, the NAND cell’s ability to retain data for significant periods of time is reduced (at the end of an SSD’s planned life, user data can still be retained for about one year in an unpowered state).
That’s simple enough to understand, but that’s not where the story ends. SSD wear and performance are both dependent on the nature of the workload presented as IO activity from the host computer, on the amount of “static” data that’s stored on the computer (or the amount of free space), and on how long data has been stored. As these variables change, performance will change, and the pace of wear will change.
There are physical reasons for this. NAND flash storage is organized in what SSD engineers call pages and blocks. A block of NAND flash can contain hundreds of pages, and a page contains 16kB of data, in most configurations. When a NAND block contains data, new data cannot simply be written over the present data. The block must first go through an erase step before it’s ready to receive new data. However, while NAND flash can be written a page at a time, it can only be erased a block at a time. All these complications mean that the SSD firmware is constantly managing the physical locations of stored data and rearranging data for the most efficient use of pages and blocks. This additional movement of stored data means that the amount of data physically written to the NAND flash is some multiple of the amount of data passed to the SSD from the host computer.
Engineers describe the ratio of the amount of data written to the NAND flash compared to the amount of data written from the host computer to the SSD using the term Write Amplification Factor (WAF). A perfect, idealized storage system would have a WAF of exactly 1.0. In real SSDs used for desktop operating systems like Windows and MacOS, a typical WAF will be in the 2 to 4 range. This means that the SSD is writing two to four times more data than would be expected if the data was only written by the host computer.
That sounds bad, but SSD engineers account for this additional write workload when designing SSDs and the SSD firmware. WAF in this range will still allow the user a good long service time for the SSD.
Despite the best SSD designs, sometimes WAF can be higher than expected or typical. Again, this is very workload dependent. For most desktop users, their workload will change significantly over time. Sometimes, the workload is heavy, sometimes it’s quite light. Here are some conditions which can cause higher WAF:
Although much of what controls WAF is buried within operating systems and file systems, there are some items that can change based on user input.
Windows® 10 is designed to operate SSDs efficiently, but the end user can help this process. TRIM is an important function which allows the SSD’s background operations to operate efficiently, and can minimize the WAF discussed above. Windows will run TRIM periodically, but in some deployments, it may not run very frequently. The user can trigger TRIM to run frequently by running the drive Optimize feature in Windows, as follows:
First, with a window open for My PC, right-click on the SSD drive and select Properties, as shown below:
With the Properties window open, select the Tools tab, and then click on Optimize:
The Optimize menu is shown below. At any time, the user can click on Optimize to run the TRIM function. Also in this menu, there is an option to Turn on scheduled optimization, which will run TRIM on a schedule determined by the user.
Finally, in the schedule window, the user can select the check-box to Run on a schedule, and then click Choose to select the targeted SSD(s).
This should help to keep the SSD’s performance consistent and can help minimize wear on the NAND flash.
©2023 Micron Technology, Inc. All rights reserved. Information, products, and/or specifications are subject to change without notice. Neither Crucial nor Micron Technology, Inc. is responsible for omissions or errors in typography or photography. Micron, the Micron logo, Crucial, and the Crucial logo are trademarks or registered trademarks of Micron Technology, Inc. Microsoft and Windows are trademarks of Microsoft Corporation in the U.S. and/or other countries. All other trademarks and service marks are the property of their respective owners.