Proxmox shows high SSD wearout: is the drive dying, and what is writing to it?
Sources checked · page updated · the question as people ask it: “The Wearout figure in Proxmox's Disks panel (or SMART Percentage Used / Media_Wearout_Indicator) on the SSD holding my Proxmox OS, ZFS rpool or VM storage keeps climbing fast - is the drive dying, what is writing to it, and do I need a different SSD?”
On NVMe, the Wearout column is the drive's own SMART Percentage Used, a vendor estimate of life used that does not by itself mean the drive is failing, even at 100; on SATA it is 100 minus a vendor-normalised wear attribute. The fields that signal real trouble are Critical Warning and Available Spare against its threshold. Before buying anything, measure host writes per day over a few days and project them against the drive's rated TBW or DWPD: only a projection past the rating makes a different SSD the fix.
What are you seeing?
Pick the closest symptom to open the matching diagnostic path. This is a guide to what to check and in what order; it does not read your system and does not diagnose it.
Read what the Wearout figure actually is (NVMe)
- 1.Print the drive's SMART/Health Information log. On NVMe the Wearout column equals Percentage Used: Proxmox stores 100 minus that value and the Disks panel displays 100 minus the stored value.
nvme smart-log /dev/nvme0Readingpercentage_used is the vendor's estimate of life used, based on actual usage and the maker's prediction of NAND life, and the drive updates it once per power-on hour. It can pass 100 (values over 254 read 255). 100 means the estimated endurance is consumed, not that the drive has failed. - 2.In the same output, check the fields that do signal a drive in trouble.ReadingA non-zero critical_warning, or available_spare below available_spare_threshold, matters more than percentage_used. The Critical Warning bits cover spare below threshold, degraded reliability and read-only media. available_spare is a normalised 0-100 percentage of remaining spare capacity.
- 3.Cross-check with smartctl, which is the tool Proxmox itself calls to fill the column.
smartctl -A /dev/nvme0ReadingThe same SMART/Health Information log. Proxmox parses its 'Percentage Used' line for the Wearout column.
Measure NVMe host writes per day
- 1.Record Data Units Written now and again after N days of normal load. One unit is 512,000 bytes of host data: the field counts thousands of 512-byte units, rounded up, and excludes metadata. The pattern below matches the label whether your nvme-cli prints it with spaces (2.x) or with underscores (older builds).
nvme smart-log /dev/nvme0 | grep -iE 'data.units.written'ReadingHost bytes per day = (second reading - first reading) x 512,000 / N. Example: a delta of 4,000,000 units over 7 days is 4,000,000 x 512,000 = 2.048 TB, about 0.29 TB a day. This counts what the host sent; writes the SSD makes internally are not in it. - 2.Cross-check from the host side. Field 7 of the block device's stat file counts sectors written since boot and resets at boot, reattachment or overflow, so take both samples within one boot.
cat /sys/block/nvme0n1/statReadingThe difference between two samples of field 7 is a write rate from the host's side. The kernel page we read does not state the sector size, so compare its trend with the drive's own Data Units Written delta rather than converting it to bytes.
Read and measure a SATA SSD
- 1.Find which wear attribute the drive exposes. Proxmox walks an ordered list that begins Media_Wearout_Indicator, SSD_Life_Left, Wear_Leveling_Count (it also checks names such as Perc_Rated_Life_Used, Percent_Lifetime_Used and Lifetime_Left) and shows 100 minus the normalised VALUE of the first match.
smartctl -A /dev/sdXReadingVALUE is normalised by each vendor's own algorithm, so the same Wearout column can mean different things on two SATA models. Note which attribute matched before comparing two drives' figures. - 2.For a write rate, read the RAW value of Total_LBAs_Written in the same output today and again after N days. Do not convert it to bytes until you have the vendor's unit: one forum poster computed a Crucial MX500's lifetime writes as anything from 1.29TB to 250TB depending on the unit assumed.ReadingAttribute meanings and raw units are vendor-specific. The delta between readings still shows whether writes are steady or bursty, even before the unit is known.
- 3.If the drive supports it, also print the ATA Device Statistics log.
smartctl -l devstat /dev/sdXReadingsmartctl prints the values and descriptions of the log's pages. Only some recent devices support this log.
Find what is writing
- 1.Watch the pool per vdev at a fixed interval, first with guests idle, then across the window where the Wearout jump happened. Ignore the first block of output, which is the average since boot.
zpool iostat -v rpool 60ReadingLater blocks show write bandwidth per vdev for each 60-second interval: the steady background rate the pool sends to the SSDs. In one forum thread an overnight jump traced to a nightly script calling the Proxmox REST API thousands of times; in another, a pfSense guest's logging was the writer. - 2.Check the ZFS settings that add writes.
zfs get atime,relatime rpool; zpool get autotrim,ashift rpoolReadingatime=on without relatime=on turns reads into access-time writes; OpenZFS recommends relatime=on or atime=off. autotrim=off is the default. An ashift smaller than the drive's sector size forces a read before every partial-sector write. Changing any of these is a configuration decision, not a diagnostic. - 3.Account for Proxmox's own background writers. pmxcfs keeps the cluster configuration in an SQLite database on disk at /var/lib/pve-cluster/config.db. rrdcached, which forum threads report Proxmox uses for its graphs, batches RRD updates and writes them to disk on a timer, every 300 seconds unless -w sets another interval. Forum threads name these two as the main PVE writers; we have not found a Proxmox document that states how much they write.
Project the measured rate against the drive's rating
- 1.Convert the drive's rating to total writes. TBW is the JEDEC JESD218 endurance rating: the terabytes a host can write to the SSD. DWPD is full-capacity writes per day for the vendor's stated lifetime, so rated total writes = capacity x DWPD x 365 x rated years.ReadingExample: 7.68TB at 1 DWPD over a stated 5 years is 7.68 x 1 x 365 x 5 = 14,016 TB; the same 1 DWPD on a 3-year basis is 8,409.6 TB. TBW figures stated on different lifetime bases are not comparable, so compare DWPD, or state the basis next to each TBW figure.
- 2.Multiply the host writes per day from the previous paths by the days of service you still want from the drive, add what Data Units Written already shows, and compare the total with the rated figure.ReadingUnder the rating: the write rate does not call for a different drive; reducing the writers found in the previous path buys margin. Over the rating: a drive with a higher stated rating is the fix.
Causes, how to confirm each, and whether hardware fixes it
| Cause | How to confirm | Fix | Hardware? |
|---|---|---|---|
| The figure is read as a failure signal when it is a vendor estimate of life used | nvme smart-log shows critical_warning 0 and available_spare above available_spare_threshold while percentage_used is high | None needed for the reading itself. Keep watching Critical Warning and Available Spare, and measure writes to see how fast the estimate will move. | No |
| On SATA, the column comes from a vendor-normalised attribute, so it does not mean the same thing on every model | smartctl -A /dev/sdX: note which of Media_Wearout_Indicator, SSD_Life_Left, Wear_Leveling_Count or the later names in Proxmox's list the drive exposes | Compare drives by measured writes and stated rating, not by the Wearout column. | No |
| A guest, script or service writes far more than expected | zpool iostat -v rpool 60 shows sustained write bandwidth with the workload you suspect running, and it drops when that workload stops | Stop or reduce that writer. Forum cases include a nightly script calling the Proxmox REST API and a firewall guest's logging. | No |
| Access-time updates on ZFS datasets | zfs get atime,relatime rpool shows atime=on with relatime=off | Set relatime=on or atime=off, as OpenZFS recommends. | No |
| IO amplification from a zvol volblocksize (or dataset recordsize) larger than the guests' typical random writes | Compare the guests' typical write size with the zvol's volblocksize or the dataset's recordsize. A secondary effect of the gap: a write smaller than the record needs a read before the write | OpenZFS says a smaller volblocksize can help with random workloads and minimise IO amplification. Proxmox's guide notes that with zvol block sizes the write amplification can be moved from the ZFS layer up to the guest rather than disappear. | No |
| Pool ashift smaller than the drive's sector size | zpool get ashift rpool: 2 to the power of ashift is smaller than the drive's sector size | The ashift should match or exceed the sector size. The sources behind this page do not cover changing it on an existing pool, so read the OpenZFS documentation before touching a pool that holds data. | No |
| Freed space is never passed to the SSD as TRIM (suggested in forum threads) | zpool get autotrim rpool shows off, which is the default | Run a periodic zpool trim, which OpenZFS says achieves most of the benefit on lower-end devices. OpenZFS also warns that automatic trimming can put significant stress on the underlying storage devices, so weigh that before turning autotrim on. | No |
| Proxmox's own background writers: pmxcfs's on-disk SQLite database and rrdcached's timed flushes (forum-reported as the main PVE writers) | zpool iostat -v rpool 60 or two samples of /sys/block/<device>/stat still show steady writes with every guest stopped | No sourced reduction: the Proxmox documentation we read describes pmxcfs but not its write volume. If this idle rate alone projects past the drive's rating, the fix is a drive rated for it. | No |
| The measured, necessary write rate exceeds the installed drive's rated endurance | Data Units Written delta per day x remaining service days, plus writes already recorded, is larger than the stated TBW or capacity x DWPD x 365 x rated years | Replace the drive with one whose stated rating covers the projection, at the same or larger capacity. | Yes |
The live list holds only SSDs whose endurance is stated as TBW or DWPD, because the projection in the last diagnostic path needs a rating to compare against. It shows new offers only, because a rating is a new-drive figure: a used drive's remaining endurance is its rating minus its own recorded writes, which a listing does not show. Each row prints its stated figure; convert DWPD with capacity x DWPD x 365 x rated years, and check the lifetime basis before comparing two TBW figures.
When not to buy: Do not buy before measuring, or when the projection stays under the installed drive's rating: in two of the forum threads behind this page the writes came from a script or a guest's logging, not the drive. The list includes only drives with a stated TBW or DWPD; check that the drive's interface and form factor fit the slot you have before buying. We do not record power-loss protection, so no listed drive is claimed to have it; confirm it on the maker's own sheet.
| Product · part number | Capacity | Interface · form | Condition | Price | $/TB | Criteria | |
|---|---|---|---|---|---|---|---|
Dell 3.84TB SAS SSD Read Intensive 12G MZILT3T8HBLS · details | 3.84TB | SAS-12G · 2.5" · 0.8 DWPD | NEW Amazon: New / Unknown · sold by AMTECH | $1,250.00 | $325.52 | Rated endurance stated as DWPD | Buy on Amazon |
Seagate FireCuda 530 1TB Heatsink ZP1000GM3A023 · details | 1TB | NVMe-PCIe4 · M.2 | NEW Amazon: New / Unknown · sold by Middle Valley Distribution | $430.01 | $430.01 | Rated endurance stated as TBW | Buy on Amazon |
Samsung MZ-QL27T600 7.68TB U.2 NVMe MZ-QL27T600 · details | 7.68TB | NVMe-PCIe4 · U.2 · 1 DWPD | NEW Amazon: New / Unknown · sold by SiliconValleySeller (SN# Recorded) | $3,998.00 | $520.57 | Rated endurance stated as TBWRated endurance stated as DWPD | Buy on Amazon |
Samsung PM9A3 7.68TB U.2 NVMe MZQL27T6HBLA · details | 7.68TB | NVMe-PCIe4 · U.2 · 1 DWPD | NEW Amazon: New / Unknown · sold by SiliconValleySeller (SN# Recorded) | $4,099.00 | $533.72 | Rated endurance stated as TBWRated endurance stated as DWPD | Buy on Amazon |
Micron 7600 PRO 3.84TB U.2 PCIe5 MTFDLAL3T8THG · details | 3.84TB | NVMe-PCIe5 · U.2 · 1 DWPD | NEW Amazon: New / Unknown · sold by Hard2FindParts | $2,599.00 | $676.82 | Rated endurance stated as TBWRated endurance stated as DWPD | Buy on Amazon |
Samsung PM9A3 960GB U.2 NVMe MZQL2960HCJR · details | 0.96TB | NVMe-PCIe4 · U.2 · 1 DWPD | NEW Amazon: New / Unknown · sold by DiscTech (USA) | $798.00 | $831.25 | Rated endurance stated as TBWRated endurance stated as DWPD | Buy on Amazon |
WD Ultrastar DC SN655 7.68TB U.3 WUS5EA176ESP7E1 · details | 7.68TB | NVMe-PCIe4 · U.3 | NEW Amazon: New / Unknown · sold by vCloud Choice | $8,334.11 | $1,085.17 | Rated endurance stated as TBW | Buy on Amazon |
Samsung PM1643A 1.92TB SAS SSD MZILT1T9HBJR · details | 1.92TB | SAS-12G · 2.5" · 1 DWPD | NEW Amazon: New / Unknown · sold by SiliconValleySeller (SN# Recorded) | $2,095.00 | $1,091.15 | Rated endurance stated as TBWRated endurance stated as DWPD | Buy on Amazon |
Samsung PM1643a 1.92TB SAS SSD MZILT1T9HBJR-00007 · details | 1.92TB | SAS-12G · 2.5" · 1 DWPD | NEW Amazon: New / Unknown · sold by SiliconValleySeller (SN# Recorded) | $2,145.00 | $1,117.19 | Rated endurance stated as TBWRated endurance stated as DWPD | Buy on Amazon |
- Solidigm D5-P5316 15.36TB NVMe U.2 SSDPF2NV153T8 · 15.36TB · no in-stock offer, so no price is shown
- WD Ultrastar DC SN655 15.36TB U.3 WUS5EA1A1ESP7E1 · 15.36TB · no in-stock offer, so no price is shown
- Samsung PM1643 7.68TB SAS SSD MZILT7T6HMLA-00007 · 7.68TB · no in-stock offer, so no price is shown
- Samsung PM9A3 3.84TB E1.S NVMe MZTL23T8HCLS · 3.84TB · no in-stock offer, so no price is shown
- Samsung PM1643 3.84TB SAS SSD MZILT3T8HALS · 3.84TB · no in-stock offer, so no price is shown
- Samsung PM1643A 3.84TB SAS SSD MZILT3T8HBLS-00007 · 3.84TB · no in-stock offer, so no price is shown
Prices are Amazon US, re-checked about once a day; newest price in this table . A click here is a click, not a purchase; we earn a commission on qualifying purchases. The table shows what the catalogue holds against the criteria, not an endorsement of any model for your server.
Read next on this site
- Enterprise NVMe U.2 SSD prices · Live prices for enterprise U.2, U.3 and E3.S drives, with a buyer guide that defines DWPD.
- SMART errors explained · Covers the hard drive SMART attributes (reallocated and pending sectors, CRC errors, power-on hours) for any HDDs in the same host; it does not cover SSD wear fields.
- Proxmox R740 build · A priced parts list for a Proxmox host, if you are planning the storage layout from scratch.
- SSD endurance calculator · Turns the writes per day you measured on this page into the TBW and DWPD a replacement needs, and lists in-stock drives whose stated rating covers it.
- Consumer vs enterprise SSD for Proxmox · The buying decision per disk role, with each Proxmox document's own wording on consumer SSDs.
Frequently asked questions
Can Percentage Used go above 100%?
Yes. The field can exceed 100, and values over 254 are reported as 255. A reading of 100 means the vendor's estimated endurance is used up; it does not by itself indicate a failure, so check Critical Warning and Available Spare.
Why did Wearout jump several percent overnight when nothing changed?
Percentage Used is not live: the drive updates its estimate once per power-on hour. Take Data Units Written readings either side of the next jump and run zpool iostat across the same window to see whether a burst of writes explains it.
Does Data Units Written include write amplification inside the SSD?
No. It counts data the host sent, in thousands of 512-byte units, excluding metadata. Writes the SSD makes internally are not in it, so it cannot show amplification inside the drive.
Does Proxmox say consumer SSDs must not be used?
In one document, yes. Proxmox's ZFS Benchmark paper (November 2020) answers "Can I use consumer or pro-sumer SSDs?" with "No. Never.", citing performance, reliability and endurance, and calls reliable enterprise-class SSDs with high endurance and power-loss protection essential for ZFS. The current admin guide is softer: its system requirements say "Using consumer SSDs is discouraged" and recommend SSDs with power-loss protection for good performance, and it recommends an enterprise-class SSD for ZFS cache and log devices, SSDs with power-loss protection for a ZIL log, and enterprise-class NVMe SSDs for storage replication. Corrected 2026-10-14: this answer used to say we had found no Proxmox document that ruled consumer SSDs out, because the 2020 paper had not been opened.
Sources
Every technical statement above rests on one of these documents, each read on the date shown. Where a document did not state something, the page says so rather than filling the gap.
- pve-storage src/PVE/Diskmanage.pm (HEAD) · checked
- proxmox-widget-toolkit src/panel/DiskList.js (HEAD) - Wearout column · checked
- NVME_HEALTH_INFO_LOG structure (nvme.h), Microsoft · checked
- nvme_smart_log(2) - libnvme-devel, openSUSE Leap 16.0 · checked
- nvme-smart-log(1) - Debian bookworm · checked
- smartctl(8) - Debian bookworm · checked
- zpool-iostat(8), OpenZFS · checked
- OpenZFS Performance and Tuning: Workload Tuning · checked
- zpoolprops(7) - autotrim, OpenZFS · checked
- Proxmox VE Administration Guide, System Administration chapter (ZFS on Linux) · checked
- Proxmox Cluster File System (pmxcfs), Proxmox wiki · checked
- rrdcached, RRDtool documentation · checked
- I/O statistics fields (admin-guide/iostats), Linux kernel documentation · checked
- JEDEC Announces Publication of Solid State Drive Standards (JESD218 / JESD219) · checked
- KIOXIA CD8P-R Series data center NVMe SSD product page · checked
- Proxmox VE ZFS Benchmark 2020 - download page · checked
- Proxmox VE ZFS Benchmark 2020 (PDF) - Hardware FAQ and SSD for ZFS · checked
- Proxmox VE Administration Guide - System Requirements (Installation chapter) · checked
Where people hit this
Discussions we opened and read while researching this page. They are evidence that the problem occurs and of what people tried; no specification above is sourced to a forum post.
- Proxmox forum · 2024-03-24 · Two NVMe drives in a ZFS mirror rpool reached 36% wearout in about a year with a large overnight jump; replies blamed consumer drives and ZFS write amplification, and the poster found a nightly script calling the Proxmox REST API thousands of times and disabled it.
- Proxmox forum · 2024-01-03 · A Samsung 980 PRO 2TB used for VM storage on ext4 logged about 2.4TB written in under a month with mostly static VMs; another poster cut a pfSense-on-ZFS guest's writes from about 10MB/s to under 1MB/s by disabling its logging.
- Proxmox forum · 2025-10-14 · PVE 9 on a single Kingston A400 480GB holding the OS and VMs kept wearing after noatime, weekly fstrim and disabling HA; replies named pmxcfs and rrdcached as the main PVE writers, and one reply said of log2ram that it helps but is not the main writer. The thread was still unresolved in March 2026.“helps, but it is not the main culprit”
- Proxmox forum · 2025-01-02 · On a Dell R610, three Crucial 2TB SSDs in raidz1 jumped 7% to 9% overnight, while the Intel SSD 730 boot drive sat at 37%; a reply pointed out that the figure comes from SMART and is not live, and the boot drive was later replaced at 88% without having failed.“it is a prediction”
- Proxmox forum · 2015-11 · Long-running thread (posts 2019-2022 read): one user measured about 7TB a month on a ZFS RAID1, another got a Crucial MX500's lifetime writes anywhere from 1.29TB to 250TB depending on the Total_LBAs_Written unit assumed, and a third found pmxcfs writing to the system partition every few seconds on a single node.
Other enterprise ssd or nvme problems
- Which SSDs should I buy for Ceph OSDs and BlueStore DB/WAL, and how big should they be?
- Do I need enterprise SSDs for Proxmox, or will consumer drives do?
- Enterprise SSD Percentage Used hit 100%: is it failing, and do you replace it?
- How much power does an enterprise U.2 NVMe SSD draw, and can I make it idle lower?
- Why does my NVMe SSD disappear under load until I power-cycle?
- Sabrent Rocket Enterprise or a consumer Sabrent Rocket in a server: what actually differs?
- All questions →