[How To] Determine the lifespan of your SSD drive

SSD Lifespan

I've had my NVMe drives for two years and have been worried about hitting that write limit. Does it take 5 years, ten... it's difficult for anyone to say as this new technology hasn't really been around long enough for this to be common knowledge.

So I started investigating. See, the SSD drives wear out over time by reads and write operations. To determine how long that will take on average use, we need to use the terminal in Linux or a third party program on Windows. (Yes, I'm including the Windows variant, as everyone should know how to figure this out).

Linux

Depending on whether you are using an SSD or an NVMe (aka M2 SSD), it is slightly different. You can find out what your computer uses by opening gnome disks, gparted or other disk management software that you prefer.

The disks will be listed with a /dev directory.

If it's /dev/sd* it will be an SSD.

If it's listed as /dev/nvme, we'll, it's an M2 drive.

You don't have to use just the /dev directory, it may be in the ID or other places as well. Just remember you are looking for sd* or nvme.

SSD

So you have determined that you have an SSD. Open the terminal and type:

smartctl -data -A /dev/sda

(Change sda to match your drive that you are working with)

NVMe

So you have determined that you have an NVMe drive. Open terminal and type:

sudo nvme smart-log /dev/nvme0

(Change nvme0 to your drive ID, this is only an example).

You will be looking for "NAND_writes". This is what you want to jot down, put in your calculator or notepad (notepad/text editor is recommended).

Windows

You will want to download Crystal Disk Info (I recommend the standard edition unless you enjoy amine girls). You can grab the zip archive here.

It will run as soon as it's decompressed. So place it whereever, open the directory and choose either the *x32 or *x64 version to run.

Once it loads, look for total host writes.

Again, write it down, type it into notepad or your calculator.

Calculation

Now we must do a little math. I'm going by years, but you can break it down into months if you really are that worried about being that specific.

My lifetime writes were 13,156GB. This is a two year, and some month, old computer and drives.

Since I'm just working with years, my calculation will be as follows:

Total writes ÷ years = writes/yr

This gives you the number of writes you are making on average in a year.

13156 ÷ 2 = 6,578GB

That is a little over 6TB a year (I use this computer a lot and will most likely be higher than yours). [1000 GB = 1TB]

With this average, now to determine the number of years that it will possibly run before hitting that write cap.

Web search your drive specs and it should list the limit at which it will fail.
Mine is the Samsung 970 evo, so it's 600TB Writes.

Knowing this, we can figure out the number of years the drive should perform prior to reaching this limit:

Max writes ÷ YrAvgWrites = ExpectedLifetime (in years).

(YrAvgWrites is year average writes)

Remember to convert TB to GB:

600TB = 600,000 GB

600,000 ÷ 6578 = 91.2131346914

The decimal isn't important. My worries are for nothing. Yes, that's the right number. Should the board, circuits and everything else hold up on that drive, it will work for 91 Years before failing from the write cap.

My worries are no longer existent. I will upgrade my computer long before I reach that cap.

I hope this has been informative, instructive and help you understand the Lifespan of your drive.

5 Likes

One thing that bugged me is I purchased a SATA SSD (Crucial), now in eldest's PC for Windows 11, is that you can only update the firmware in Windows or Mac, not in Linux! Is it possible to do that by say running a VM of Windows inside Linux on a SATA drive to update the firmware? Please feel free to move this to a new thread on General help section with a title of "Question about firmware updates for SATA SSD". :wink:

1 Like

If you have a live image of win 10, you can do it from there. Otherwise, a VM of win 10, or dual boot installation would be required.

Let us hope that Linux developers work out a way to enable this without needing Windows.