-
Notifications
You must be signed in to change notification settings - Fork 2
SSD Endurance
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 takes almost ~1.3TiB of writes (post 1.0.4 version) per k-32 plot.
Endurance with madMAx plotter is measured at
- -t & -2 on same drive: 1.43TB or 1.31TiB written per k=32 plot
- -t only (-2 in ramdisk): 396.3 GB, 369.1 GiB (0.36 TiB)
Endurance is how much data can be written to the SSD before it wears out. In Chinilla 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. more details about buying SSD for Chinilla
working model can be found here
You can learn more about SSD endurance from this SNIA whitepaper from JM here
- 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
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
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
sg_logs /dev/sg1 --page=0x11
look for
Percentage used endurance indicator: 0%
overview of SSD endurance testing from JEDEC industry standard here https://www.jedec.org/sites/default/files/Alvin_Cox%20%5BCompatibility%20Mode%5D_0.pdf
Please add your model string below if you want me to put it into my calculator and add to the list!
Chinilla Network - Green money for a digital world.
- Home
- Beginners Guide
- Install instructions
- Quick Start Guide
- FAQ - Frequently Asked Questions
- Pooling FAQ
- Pooling User Guide
- Chinilla Project FAQ
- Plotting Basics
- Alternate Plotters
- Plot Sizes (k-sizes)
- CLI Commands Reference
- Windows Tips & Tricks
- How to Check if Everything is Working (or Not)
- SSD Endurance - Info on SSD's and plotting
- Reference Plotting Hardware
- Reference Farming Hardware
- Farming on Many Machines
- Good Security Practices on Many Machines
- Chinillalisp Documentation (Official)
- Chinillalisp Notes
- Timelords and Cluster Timelords
- Release Notes
- RPC Interfaces
- Resolve Sync Issues - Port 8444