SSD Endurance

Estimated SSD wear out, endurance table

There are various approaches to picking a great plotting SSD, and a lot will depend on the physical system it is going into for form factor and interface compatibility (NVMe/PCIe, SATA, or SAS). The one thing in common will be that you need high endurance, due to the fact that it take almost ~1.8TB of writes using the -e flag or 1.6TB without that option to create a single K=32 plot.

Endurance is how much data can be written to the SSD before it wears out. In Chia this is important because a plotting SSD will generally be at 100% duty cycle and writing all day.

A mixed use or high endurance data center or enterprise SSD is the best choice for plotting. Used SSDs with plenty of endurance can be found for a good value on eBay, Craigslist, or similar.

Consumer NVMe SSDs are generally not recommended due to the lower endurance, and they often employ caching algorithms to faster media (SLC, or single level cell) for great bursty performance. They do not perform well under heavy workload sustained IO. There are very high performance consumer NVMe SSDs that will offer great plotting performance, but the lower rated endurance in TBW will result in a faster wearout.

VendorModelForm FactorInterfaceClass$ASP$/GBUser Capacity (GB):usable GiB in OSSpec sheet rated TBWtotal plots, worst, (TiB)total plots, best, (TiB)$/TiB, worst$/TiB, best
IntelP3700U.2 & AICNVMeenterprise mixed use$250.00$0.1616001455.54380019532930$0.13$0.09
IntelP3600U.2 & AICNVMeenterprise mixed use$140.00$0.0916001455.58760391977$0.36$0.14
IntelP4600U.2 & AICNVMeenterprise mixed use$352.00$0.1132002910.91820013562441$0.26$0.14
IntelP3600U.2 & AICNVMeenterprise mixed use$116.00$0.1012001091.66570297742$0.39$0.16
IntelP3600U.2 & AICNVMeenterprise mixed use$115.00$0.1012001091.66570293732$0.39$0.16
IntelP4600U.2 & AICNVMeenterprise mixed use$176.00$0.1116001455.58990407732$0.43$0.24
IntelP4600U.2 & AICNVMeenterprise mixed use$220.00$0.1120001819.311080509916$0.43$0.24
IntelP3700U.2 & AICNVMeenterprise mixed use$120.00$0.30400363.97300332498$0.36$0.24
Micron5300 MaxSATA 2.5inSATAenterprise SATA$307.20$0.1619201746.6175205571270$0.55$0.24
Micron5300 MaxSATA 2.5inSATAenterprise SATA$614.40$0.1638403493.12452811142539$0.55$0.24
IntelS4610SATA 2.5inSATAenterprise mixed use$144.00$0.15960873.35800266586$0.54$0.25
Micron5300 ProSATA 2.5inSATAenterprise SATA$249.60$0.1319201746.652562001000$1.25$0.25
Micron5300 ProSATA 2.5inSATAenterprise SATA$499.20$0.1338403493.184104002000$1.25$0.25
SamsungPM1725bU.2 & AICNVMeenterprise mixed use$267.00$0.1716001455.587604001000$0.67$0.27
Micron9300 ProU.2NVMeenterprise$1,152.00$0.1576806986.3168007274000$1.58$0.29
Micron9300 ProU.2NVMeenterprise$576.00$0.1538403493.184003642000$1.58$0.29
IntelP4610U.2NVMeenterprise mixed use$300.00$0.1916001455.5106134301031$0.70$0.29
DRAMDDR3DIMDDR3memory$768.00$1.50512465.825002500$0.31$0.31
SamsungPM983U.2 and M.2NVMedata center$110.00$0.11960873.31366.5663350$1.76$0.31
SamsungPM983U.2 and M.2NVMedata center$225.00$0.1219201746.62733.12125700$1.80$0.32
IntelS3710SATA 2.5inSATAenterprise mixed use$68.00$0.17400363.98300137205$0.50$0.33
CorsairCSSD-F960GBMP510M.2NVMeclient$120.00$0.13960873.3170076350$1.57$0.34
ToshibaPX04SVQ2.5in SASSAS 12Gbpsenterprise SAS$380.00$0.2416001455.587603981074$0.96$0.35
InlandInland Premium 1TB SSDM.2NVMeclient mainstream$125.00$0.121024931.5160073350$1.72$0.36
Micron9300U.2NVMedata center$768.00$0.2038403493.184003642000$2.11$0.38
Micron9300 MaxU.2NVMeenterprise$1,600.00$0.2564005821.93730016504125$0.97$0.39
Micron9300 MaxU.2NVMeenterprise$800.00$0.2532002910.9186008252063$0.97$0.39
SabrentSB-ROCKET-NVMe4-2TBM.2NVMeclient$349.00$0.1720001819.33600163700$2.14$0.50
IntelS4600SATA 2.5inSATAenterprise mixed use$96.00$0.20480436.62950104188$0.92$0.51
DRAMDDR4DIMDDR4memory$1,536.00$3.00512465.825002500$0.61$0.61
IntelP4510U.2NVMedata center$400.00$0.2020001819.32054115516$3.49$0.78
WDSN750M.2NVMeclient mainstream$60.00$0.12500454.83001475$4.40$0.80
WDSN750M.2NVMeclient mainstream$120.00$0.121000909.760027150$4.40$0.80
CorsairMP510M.2NVMeclient$120.00$0.13960873.372033150$3.66$0.80
SeagateNitro 1551SATA 2.5inSATAdata center SATA$255.00$0.27960873.32390102305$2.51$0.84
Samsung970 EvoM.2NVMeclient maintream$163.84$0.161024931.560030150$5.46$1.09
IntelP4800XU.2 & AICNVMeenterprise$2,062.50$2.75750682.34100018311831$1.13$1.13
Samsung970 ProM.2NVMeclient high end$307.20$0.301024931.5120050250$6.14$1.23
Intel905pU.2 and M.2NVMeclinet high end$1,152.00$1.20960873.317520938938$1.23$1.23
Intel665pM.2NVMeclient mainstream$102.40$0.101024931.53001575$6.83$1.37
IntelP4800XU.2 & AICNVMeenterprise$2,062.50$5.50375341.141000916916$2.25$2.25
Intel660pM.2NVMeclient mainstream$122.88$0.121024931.52001050$12.29$2.46

estimated GiB per minute based off class of drives for drives that have yet to be tested, for the drives in the wiki I have added the measured numbers.

Math

  • NAND P/E Cycles = amount of program / erase cycles NAND can do before wearing out. NAND programs (writes) in pages and erases in blocks (contains many pages)
  • Wearing out – SSD no longer meeting UBER (uncorrectable bit error rate), retention (keeping data safe while powered off), failure rate, or user capacity
  • UBER = number of data errors / number of bits read
  • WAF (Write Amplification Factor) = NAND writes / host writes
  • TBW or PBW – amount of host writes to SSD before wearing out
  • TBW = drive capacity * cycles / WAF
  • DWPD (drive writes per day): amount of data you can write to device each day of the warranty (typically 5 years) without wearing out
  • DWPD = TBW/365/5/drive capacity

Monitor Endurance in Linux

NVMe

https://github.com/linux-nvme/nvme-cli

https://nvmexpress.org/open-source-nvme-management-utility-nvme-command-line-interface-nvme-cli/

Reading endurance with NVMe-CLI – this is the gas gauge that shows total endurance used

sudo nvme smart-log /dev/nvme0 | grep percentage_used

Reading amount of writes that the drive have actually done

sudo nvme smart-log /dev/nvme0 | grep data_units_written

Bytes written = output * 1000 * 512B

TBW = output * 1000 * 512B / (1000^4) or (1024^4)

To find out NAND writes, you will have use the vendor plugins for NVMe-CLI.

sudo nvme <vendor name> help

Example with an Intel SSD

sudo nvme intel smart-log-add /dev/nvme0

SATA

In SATA you can use the following commands

sudo apt install smartmontools

sudo smartctl -x /dev/sda | grep Logical

sudo smartctl -a /dev/sda

looking for Media_Wearout_Indicator

note this does also work for NVMe for basic SMART health info

sudo smartctl -a /dev/nvme0

SAS

sg_logs /dev/sg1 --page=0x11

look for

Percentage used endurance indicator: 0%

Leave a Reply

*