<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>NVMe Operations Guides on Netdata</title><link>https://www.netdata.cloud/guides/nvme/</link><description>Recent content in NVMe Operations Guides on Netdata</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://www.netdata.cloud/guides/nvme/index.xml" rel="self" type="application/rss+xml"/><item><title>blk_update_request: I/O error, dev nvme0n1: reading NVMe I/O errors in the kernel log</title><link>https://www.netdata.cloud/guides/nvme/nvme-blk-update-request-io-error/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-blk-update-request-io-error/</guid><description>&lt;p>&lt;code>dmesg&lt;/code> shows lines like this:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>blk_update_request: I/O error, dev nvme0n1, sector 12345678
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Maybe one line. Maybe thousands. Maybe interleaved with &lt;code>nvme nvme0: Resetting controller&lt;/code> or &lt;code>nvme nvme0: Removing&lt;/code>. The operational question is always the same: is this a single bad block the drive surfaced on a read, or is the device, the controller, or the PCIe link underneath it failing?&lt;/p>
&lt;p>This guide covers what the kernel is actually telling you, how to classify the failure from the surrounding log lines, and which SMART and sysfs signals confirm or rule out each cause.&lt;/p></description></item><item><title>How NVMe actually works in production: a mental model for operators</title><link>https://www.netdata.cloud/guides/nvme/nvme-how-it-works-in-production/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-how-it-works-in-production/</guid><description>&lt;p>Most storage incidents on NVMe are misdiagnosed for the same reason: operators debug them as if NVMe were a faster SATA disk. It is not. NVMe is a host-to-controller communication protocol that exposes flash storage over PCIe, and the failure modes live in places generic disk monitoring never looks: the PCIe link, the controller firmware, and the flash translation layer sitting between your filesystem and the NAND.&lt;/p>
&lt;p>The mental model that makes NVMe behavior predictable has three layers: the PCIe transport, the controller, and the flash media. Once you hold this model, most &amp;ldquo;mystery slowness&amp;rdquo; and &amp;ldquo;healthy SMART, dead drive&amp;rdquo; incidents stop being mysterious. Scope here is local PCIe-attached NVMe. NVMe-oF, ZNS, and SPDK change the monitoring model fundamentally and are not covered.&lt;/p></description></item><item><title>NVMe ASPM latency spikes: PCIe power states adding first-request latency</title><link>https://www.netdata.cloud/guides/nvme/nvme-aspm-latency-spikes/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-aspm-latency-spikes/</guid><description>&lt;p>You are chasing tail latency on an NVMe-backed service. The p99 graph shows sporadic spikes: tens of microseconds added to reads that should complete in well under 100us. The spikes do not correlate with load, temperature, media errors, queue depth, or garbage collection. SMART is clean. The block layer looks clean. The one pattern you can find: the slow I/Os tend to be the first request after the device sat idle.&lt;/p></description></item><item><title>NVMe available spare below threshold: critical warning bit 0 and end-of-life wear</title><link>https://www.netdata.cloud/guides/nvme/nvme-available-spare-below-threshold/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-available-spare-below-threshold/</guid><description>&lt;p>Your monitoring fired on an NVMe drive: critical warning bit 0 is set, or &lt;code>available_spare&lt;/code> has dropped to (or below) the vendor threshold. The drive still works. Reads and writes complete, latency looks fine, nothing in the application layer is complaining. That is exactly what makes this signal easy to ignore and expensive to ignore.&lt;/p>
&lt;p>Bit 0 means the controller&amp;rsquo;s pool of spare NAND blocks, the reserve it uses to transparently replace failed cells, has fallen below the safety margin the vendor baked into the firmware. The drive is telling you it is approaching end-of-life. It is not telling you it has failed.&lt;/p></description></item><item><title>NVMe available spare declining: watching the wear trajectory before the threshold</title><link>https://www.netdata.cloud/guides/nvme/nvme-available-spare-declining/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-available-spare-declining/</guid><description>&lt;p>The drive reported available_spare at 100% for two years. This quarter it reads 94%, and last month it was 96%. Nothing has alerted: critical_warning is zero, I/O is clean, latency is normal. The question is whether you are watching normal aging or the early edge of a failure curve. The answer is almost never in the current value. It is in the rate of change.&lt;/p>
&lt;p>Available spare is a gauge, not an event. By the time the drive asserts critical_warning bit 0 (available spare below threshold), you are inside the vendor&amp;rsquo;s safety margin and replacing the drive on the failure&amp;rsquo;s schedule instead of yours. An accelerating, non-linear spare decline is one of the strongest leading indicators of premature NVMe failure, and you can only see it if you track consumption months before the threshold crossing.&lt;/p></description></item><item><title>NVMe controller reset loop: repeated resets from a firmware hang</title><link>https://www.netdata.cloud/guides/nvme/nvme-controller-reset-loop/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-controller-reset-loop/</guid><description>&lt;p>Your kernel log shows the same cycle over and over: an I/O command stalls until the 30-second &lt;code>io_timeout&lt;/code> fires, the NVMe driver resets the controller, I/O briefly recovers, then the whole thing hangs again. Each cycle costs your applications 5 to 30 seconds of stalled I/O. Databases time out, requests fail, clusters rebalance, and minutes later it happens again.&lt;/p>
&lt;p>This is the controller firmware hang loop. The firmware hits a bug triggered by a specific command sequence, queue depth, I/O size, or power state transition. The kernel detects the timeout, resets the controller, and replays the in-flight commands. The same trigger recurs, so the controller hangs again. The loop can continue indefinitely.&lt;/p></description></item><item><title>NVMe controller state not live: reading resetting, deleting, and dead from sysfs</title><link>https://www.netdata.cloud/guides/nvme/nvme-controller-state-not-live/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-controller-state-not-live/</guid><description>&lt;p>The fastest way to answer &amp;ldquo;is this NVMe device actually usable right now&amp;rdquo; is a single file: &lt;code>/sys/class/nvme/nvmeX/state&lt;/code>. It is the kernel NVMe driver&amp;rsquo;s own view of the controller, exposed as one word: &lt;code>live&lt;/code>, &lt;code>resetting&lt;/code>, &lt;code>connecting&lt;/code>, &lt;code>deleting&lt;/code>, &lt;code>dead&lt;/code>, or &lt;code>new&lt;/code>. No SMART parsing, no log pages, no vendor tooling. If the state is not &lt;code>live&lt;/code>, I/O to that device is stalled, failing, or about to.&lt;/p>
&lt;p>This signal is easy to miss because it lives in sysfs, not in the SMART log. &lt;code>nvme smart-log&lt;/code> will report a healthy drive while the controller sits in &lt;code>resetting&lt;/code> and every I/O queues behind a timeout. It is also not exposed by Netdata&amp;rsquo;s NVMe collector, so many monitoring setups have no visibility into it at all.&lt;/p></description></item><item><title>NVMe critical_warning is nonzero: decoding the SMART critical warning bitmask</title><link>https://www.netdata.cloud/guides/nvme/nvme-critical-warning-nonzero/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-critical-warning-nonzero/</guid><description>&lt;p>Your monitoring fired because &lt;code>critical_warning&lt;/code> in the NVMe SMART log is nonzero. Or you ran &lt;code>nvme smart-log /dev/nvme0&lt;/code> during an investigation and saw something like &lt;code>critical_warning : 0x04&lt;/code> where you expected &lt;code>0x00&lt;/code>. You need two things fast: which bit is set, and how bad it is.&lt;/p>
&lt;p>The most common mistake here is treating &lt;code>critical_warning != 0&lt;/code> as one alert with one severity. It is a bitmask of six independent conditions with wildly different severity. Bit 3 means the drive has gone read-only and is refusing writes: a page-right-now outage. Bit 0 means spare capacity is below the vendor threshold: a procurement ticket, not a 3 a.m. incident. Bit 1 may be a transient thermal event during a backup run that clears itself.&lt;/p></description></item><item><title>NVMe device disappeared: nvme0: Removing and a drive that fell off the PCIe bus</title><link>https://www.netdata.cloud/guides/nvme/nvme-device-removed-disappeared/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-device-removed-disappeared/</guid><description>&lt;p>You are looking at a host where an NVMe drive was present and is now gone. The kernel log shows some version of this sequence: a &lt;code>pcieport: AER: Uncorrectable (Fatal)&lt;/code> line, possibly followed by &lt;code>nvme nvme0: controller is down; will reset: CSTS=0xffffffff&lt;/code>, then &lt;code>nvme nvme0: Removing&lt;/code> (or &lt;code>nvme nvme0: Removing after probe failure status: -19&lt;/code>), and often &lt;code>nvme0n1: detected capacity change from X to 0&lt;/code>. After that, &lt;code>/dev/nvme0n1&lt;/code> no longer exists and &lt;code>/sys/class/nvme/nvme0&lt;/code> is empty.&lt;/p></description></item><item><title>NVMe drive in read-only mode: critical warning bit 3 and rejected writes</title><link>https://www.netdata.cloud/guides/nvme/nvme-read-only-mode/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-read-only-mode/</guid><description>&lt;p>Your monitoring fires a PAGE: the NVMe device has set &lt;code>critical_warning&lt;/code> bit 3 (0x08), meaning the drive has autonomously placed its media in read-only mode. Every write command the host sends is now rejected by the drive&amp;rsquo;s firmware. Reads still work. Writes do not.&lt;/p>
&lt;p>This is not transient, not load-dependent, and not cleared by a reboot or controller reset. The drive has decided, based on its own internal assessment, that it can no longer safely accept writes, typically because it has run out of spare NAND blocks to remap failing cells into. It has switched itself into data-preservation mode so you can get your data off before it dies completely.&lt;/p></description></item><item><title>NVMe endurance runway: projecting time-to-replacement from wear signals</title><link>https://www.netdata.cloud/guides/nvme/nvme-endurance-runway-planning/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-endurance-runway-planning/</guid><description>&lt;p>NVMe wear-out is one of the few storage failures that usually announces itself months in advance. The announcement is quiet: a monotonically rising &lt;code>percentage_used&lt;/code>, a slow drift in &lt;code>available_spare&lt;/code>, maybe the first few &lt;code>media_errors&lt;/code>. If you only look at current values, you find out when the drive crosses a threshold. If you trend the rates, you can procure before the drive becomes an incident.&lt;/p>
&lt;p>This guide is a planning procedure for local PCIe-attached NVMe devices. It turns three wear signals into a replacement date, then cross-checks that date against spare-block consumption and early media failure. It does not apply to NVMe-oF, ZNS, SPDK, or virtualized cloud &amp;ldquo;NVMe&amp;rdquo; devices where SMART data is absent, synthetic, or owned by the provider.&lt;/p></description></item><item><title>NVMe error log entries growing: num_err_log_entries beyond media errors</title><link>https://www.netdata.cloud/guides/nvme/nvme-error-log-entries-increasing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-error-log-entries-increasing/</guid><description>&lt;p>Your NVMe alert fired because &lt;code>num_err_log_entries&lt;/code> is climbing. You pull the SMART log, and &lt;code>media_errors&lt;/code> is zero. The drive looks healthy, but something is writing error entries at a steady, sometimes alarming, rate.&lt;/p>
&lt;p>&lt;code>num_err_log_entries&lt;/code> is a superset counter: it counts every error the controller records, including admin command errors, I/O command errors, internal controller errors, and thermal events. &lt;code>media_errors&lt;/code> counts only data integrity failures against the NAND. A rising &lt;code>num_err_log_entries&lt;/code> with flat &lt;code>media_errors&lt;/code> points away from failing flash and toward firmware, driver, or command-level issues. In a large share of cases, it points at your own monitoring stack.&lt;/p></description></item><item><title>NVMe firmware version tracking: catching the bugs vendors do not advertise</title><link>https://www.netdata.cloud/guides/nvme/nvme-firmware-version-tracking/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-firmware-version-tracking/</guid><description>&lt;p>The NVMe controller is an embedded computer running proprietary firmware that owns your data path: the flash translation layer, wear leveling, garbage collection, error correction, and the queue interface to the host. When that firmware has a bug, the symptoms show up as reset loops, erratic latency, premature wear, or in the worst cases silent data loss. Controller firmware bugs are more common than vendors admit, and they are usually triggered by specific command sequences or power-state transitions, so two identical drives on different firmware revisions can behave like different hardware.&lt;/p></description></item><item><title>NVMe high I/O latency: reading block-layer latency and the outliers that matter</title><link>https://www.netdata.cloud/guides/nvme/nvme-high-io-latency/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-high-io-latency/</guid><description>&lt;p>Latency complaints about NVMe arrive as &amp;ldquo;the database is slow&amp;rdquo; or &amp;ldquo;queries time out randomly.&amp;rdquo; By the time the report reaches you, the mean latency from &lt;code>iostat&lt;/code> often looks fine, because NVMe mean latency is almost always fine. The damage comes from the tail: the occasional 10 ms or 1 s outlier that breaks a request deadline and cascades into application timeouts.&lt;/p>
&lt;p>The block layer gives you averages, and averages hide exactly the outliers that matter. This guide covers how to read the block-layer counters, how to get the actual latency distribution, and how to map a latency spike to its cause: thermal throttling, garbage collection pressure, PCIe transport degradation, or a controller on its way to a reset.&lt;/p></description></item><item><title>NVMe media_errors increasing: uncorrectable data-integrity errors on NAND</title><link>https://www.netdata.cloud/guides/nvme/nvme-media-errors-increasing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-media-errors-increasing/</guid><description>&lt;p>Your monitoring shows the &lt;code>media_errors&lt;/code> counter on an NVMe drive going up. In &lt;code>nvme smart-log&lt;/code> output the field is labelled &lt;code>media_errors&lt;/code> (or &amp;ldquo;Media and Data Integrity Errors&amp;rdquo; in some nvme-cli versions), and it is the one SMART field you should never explain away: each increment is a read or write where the controller could not maintain data integrity even after its internal ECC and retry mechanisms were exhausted.&lt;/p>
&lt;p>The absolute value is almost meaningless on its own. A drive with 3 lifetime errors after four years of service can be perfectly healthy; a drive that went from 0 to 12 errors this week is failing. The rate of change, and what changes alongside it, is the diagnostic. A single new error during a backup run that scanned cold data can be one latent bad block finally being touched. A steady climb combined with &lt;code>critical_warning&lt;/code> bit 2 (NVM subsystem reliability degraded) is the drive telling you it is dying.&lt;/p></description></item><item><title>NVMe monitoring checklist: the signals every production SSD needs</title><link>https://www.netdata.cloud/guides/nvme/nvme-monitoring-checklist/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-monitoring-checklist/</guid><description>&lt;p>Most NVMe monitoring collects a handful of SMART counters and stops there. That works until a controller hangs without touching SMART, a PCIe link silently retrains to half speed, or a drive sets a critical warning bit that your single blanket alert treats as noise. NVMe failures rarely arrive as a clean &amp;ldquo;disk error.&amp;rdquo; They arrive as latency, throttling, stalled queues, or a device that vanishes from the bus.&lt;/p>
&lt;p>Scope: local PCIe-attached NVMe devices (M.2, U.2, U.3, EDSFF). NVMe-oF, ZNS, and SPDK userspace configurations have different monitoring models and are out of scope.&lt;/p></description></item><item><title>NVMe monitoring maturity model: from survival to expert</title><link>https://www.netdata.cloud/guides/nvme/nvme-monitoring-maturity-model/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-monitoring-maturity-model/</guid><description>&lt;p>Most teams discover their NVMe monitoring gaps during an incident: a drive throttling silently at 80 C while every dashboard shows green, or a Gen4 x4 device running at Gen3 x2 for weeks with zero errors. NVMe fails differently from SATA and SAS. It has a PCIe transport layer with its own error reporting, a controller running a flash translation layer that causes latency variance invisible to block-layer averages, and wear signals that only matter as rates of change. Generic disk monitoring misses all of this.&lt;/p></description></item><item><title>NVMe namespaces and the 512e vs 4K sector-size trap</title><link>https://www.netdata.cloud/guides/nvme/nvme-namespace-sector-size/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-namespace-sector-size/</guid><description>&lt;p>A namespace formatted for 512-byte logical blocks (512e) while the workload, filesystem, or encryption layer assumes 4K blocks produces no errors, no SMART warnings, and no kernel log entries. It just makes the controller do more work per host write than it should. This is one of the genuinely silent NVMe failure modes: everything looks healthy while write amplification quietly burns endurance and adds latency.&lt;/p>
&lt;p>The trap is a provisioning-time decision with runtime consequences. Many drives ship formatted 512e for compatibility. Someone creates a filesystem, a LUKS volume, or a ZFS pool on top, and the mismatch is locked in until the namespace is reformatted, which destroys the data on it.&lt;/p></description></item><item><title>NVMe NVM subsystem reliability degraded: critical warning bit 2</title><link>https://www.netdata.cloud/guides/nvme/nvme-nvm-subsystem-reliability-degraded/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-nvm-subsystem-reliability-degraded/</guid><description>&lt;p>Your monitoring just reported &lt;code>critical_warning : 0x4&lt;/code> on an NVMe device, or smartctl printed &amp;ldquo;SMART overall-health self-assessment test result: FAILED! - NVM subsystem reliability has been degraded.&amp;rdquo; The drive is still serving I/O. Nothing in the kernel log looks catastrophic. Is the drive dying, or is this noise?&lt;/p>
&lt;p>It depends on what else the SMART log says. Critical warning bit 2 is the vaguest bit in the critical warning byte. The specification language is broad: the controller has detected significant media-related errors, or some internal error, that degrades NVM subsystem reliability. What counts as &amp;ldquo;significant&amp;rdquo; and &amp;ldquo;degraded&amp;rdquo; is left to the vendor, and vendors interpret it very differently. Some drives set bit 2 only when the flash is genuinely failing. Others, notably several Samsung consumer models, set it preemptively the moment Percentage Used crosses 100 percent, which is a warranty-consumed signal, not a failure signal.&lt;/p></description></item><item><title>nvme nvme0: I/O timeout, Resetting controller: what an NVMe controller reset means</title><link>https://www.netdata.cloud/guides/nvme/nvme-controller-reset-timeout/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-controller-reset-timeout/</guid><description>&lt;p>You are here because &lt;code>dmesg&lt;/code> or &lt;code>journalctl -k&lt;/code> shows a sequence like this:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>nvme nvme0: I/O 24 QID 3 timeout
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>nvme nvme0: Abort status: 0x0
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>nvme nvme0: Resetting controller
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>The NVMe driver submitted a command, the controller did not complete it within the I/O timeout (30 seconds by default), the driver tried to abort the command, the abort did not resolve things, and the driver forced a full controller reset. During the reset-recovery cycle, which typically takes 5 to 30 seconds, all I/O to that device stalls. In-flight commands are replayed after the reset completes.&lt;/p></description></item><item><title>NVMe PCIe AER errors: correctable and uncorrectable transport-layer faults</title><link>https://www.netdata.cloud/guides/nvme/nvme-pcie-aer-errors/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-pcie-aer-errors/</guid><description>&lt;p>You opened the kernel log because something felt off, and found lines like this repeating:&lt;/p>
&lt;pre tabindex="0">&lt;code>pcieport 0000:00:1b.0: AER: Corrected error received: 0000:01:00.0
nvme 0000:01:00.0: PCIe Bus Error: severity=Corrected, type=Physical Layer, (Receiver ID)
&lt;/code>&lt;/pre>&lt;p>That is PCI Express Advanced Error Reporting (AER), the transport layer underneath NVMe telling you the link between the root port and the drive is producing errors. These errors happen below the NVMe protocol: the drive&amp;rsquo;s SMART data can look perfectly healthy while the PCIe link is retransmitting constantly, quietly adding latency to every I/O.&lt;/p></description></item><item><title>NVMe PCIe link degraded: current link speed and width below maximum</title><link>https://www.netdata.cloud/guides/nvme/nvme-pcie-link-speed-width-degraded/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-pcie-link-speed-width-degraded/</guid><description>&lt;p>An NVMe drive negotiates its PCIe link at boot, at hot-plug, and after some error events. When negotiation lands below the device&amp;rsquo;s capability, nothing breaks. The drive keeps serving I/O, SMART stays clean, and the filesystem sees no errors. The only symptom is a lower bandwidth ceiling: a Gen4 x4 drive running at Gen3 x2 delivers roughly one quarter of its rated throughput, and every application on top of it just runs slower.&lt;/p></description></item><item><title>NVMe percentage used at 100%: reading the endurance-consumed estimate</title><link>https://www.netdata.cloud/guides/nvme/nvme-percentage-used-high/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-percentage-used-high/</guid><description>&lt;p>Your monitoring just told you an NVMe drive is at 100% &amp;ldquo;percentage used&amp;rdquo;, or 123%, or 167%. The number looks like a fuel gauge hitting empty, and the instinct is to treat it as an emergency. It is not one. &lt;code>percentage_used&lt;/code> is a vendor estimate of rated endurance consumed, the NVMe specification explicitly allows it to exceed 100, and drives routinely operate past 100% for months or years. It is also monotonic: it never goes back down.&lt;/p></description></item><item><title>NVMe power cycles and power-on hours: fleet age and lifecycle tracking</title><link>https://www.netdata.cloud/guides/nvme/nvme-power-cycles-power-on-hours/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-power-cycles-power-on-hours/</guid><description>&lt;p>&lt;code>power_cycles&lt;/code> and &lt;code>power_on_hours&lt;/code> become operational when you need to know how old a drive really is, whether it has been losing power independently of the OS, and which fleet cohort is approaching replacement together.&lt;/p>
&lt;p>They are not failure alerts by themselves. Treat them as the lifecycle ledger for local PCIe-attached NVMe devices: &lt;code>power_cycles&lt;/code> counts full device power-off and power-on events, not NVMe controller resets, while &lt;code>power_on_hours&lt;/code> counts electrical on-time, not active I/O time. For controller-reported I/O occupancy, use &lt;code>controller_busy_time&lt;/code>.&lt;/p></description></item><item><title>NVMe power-loss protection: knowing whether your drive has PLP at all</title><link>https://www.netdata.cloud/guides/nvme/nvme-power-loss-protection-plp/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-power-loss-protection-plp/</guid><description>&lt;p>Power-loss protection (PLP) is the difference between an unsafe shutdown being a non-event and an unsafe shutdown being silent data corruption. Enterprise NVMe drives carry capacitors that hold the controller up long enough to flush the volatile write cache to NAND when power drops. Consumer drives do not. On a drive without PLP, every power loss, PSU failure, or hard reset risks losing writes that the kernel and the application already believe are durable.&lt;/p></description></item><item><title>NVMe queue depth saturation: command slots, io_timeout, and deep queues</title><link>https://www.netdata.cloud/guides/nvme/nvme-io-queue-depth-saturation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-io-queue-depth-saturation/</guid><description>&lt;p>You are looking at a host where NVMe latency has climbed, iostat shows the device busy, and nothing is erroring. No media errors, no kernel I/O error lines, SMART looks clean. The question is whether the drive is simply working as hard as it can, or whether something is wrong inside it. Queue depth is the signal that separates those two cases.&lt;/p>
&lt;p>NVMe was designed for deep parallelism: each CPU core typically gets its own submission queue (SQ) and completion queue (CQ) pair, and a single queue can hold up to 64K command entries. Most enterprise drives reach peak throughput somewhere between QD 64 and QD 256 across all queues. Past that point, more outstanding commands buy nothing but latency: every extra command sits in a queue slot waiting for the controller to drain the ones ahead of it, and completion time grows linearly with how deep you stack.&lt;/p></description></item><item><title>NVMe sanitize, format, and secure erase: expected events versus red flags</title><link>https://www.netdata.cloud/guides/nvme/nvme-sanitize-format-secure-erase/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-sanitize-format-secure-erase/</guid><description>&lt;p>Sanitize, Format NVM, and secure erase are the three ways an NVMe controller destroys data on its own media. They are admin commands executed inside controller firmware, and once started they are largely outside the host&amp;rsquo;s control. In a healthy fleet they appear during commissioning (occasionally) and during decommission or repurpose. Any other occurrence is a security or integrity event.&lt;/p>
&lt;p>The operational problem is that these operations look alarming even when they are working correctly. Progress counters sit at 0% or 50% for hours. The controller briefly shows a &lt;code>resetting&lt;/code> state. Estimated completion times report meaningless values. Operators page on all of this, or worse, they try to &amp;ldquo;fix&amp;rdquo; a running sanitize and discover it cannot be stopped.&lt;/p></description></item><item><title>NVMe silent data degradation: media errors, reliability bit, and failing cold reads</title><link>https://www.netdata.cloud/guides/nvme/nvme-silent-data-degradation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-silent-data-degradation/</guid><description>&lt;p>The drive is still there. It answers I/O, the filesystem is mounted, latency looks mostly normal, and nothing in &lt;code>dmesg&lt;/code> is screaming. But &lt;code>media_errors&lt;/code> has been climbing for days, &lt;code>critical_warning&lt;/code> now shows bit 2 set, and a few reads per hour are inexplicably slow. A backup verification job just failed a checksum on a file nobody has written to in months.&lt;/p>
&lt;p>This is NVMe silent data degradation: NAND cells are losing their ability to hold charge, reads need multiple internal retry passes, and some reads fail outright even after ECC. The device stays responsive the whole time. There is no crash to page you, only a slow accumulation of uncorrectable reads, usually on data that is written once and rarely touched.&lt;/p></description></item><item><title>NVMe temperature threshold exceeded: critical warning bit 1, WCTEMP, and CCTEMP</title><link>https://www.netdata.cloud/guides/nvme/nvme-temperature-threshold-exceeded/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-temperature-threshold-exceeded/</guid><description>&lt;p>Your monitoring fired on an NVMe drive: &lt;code>critical_warning&lt;/code> is non-zero, and after decoding the bitmask you find bit 1 set (value &lt;code>0x02&lt;/code>). The drive is reporting that its composite temperature has crossed a vendor-defined over-temperature threshold. The question that matters is whether this is a transient self-protecting throttle under heavy load, or a sustained thermal condition that is getting worse.&lt;/p>
&lt;p>Bit 1 can fire during a perfectly healthy backup job and clear itself minutes later. It can also be the first signal of a cooling failure that ends in controller shutdown. The difference is not in the bit itself but in the surrounding counters: how long the condition has persisted, and whether time above the critical threshold is accumulating.&lt;/p></description></item><item><title>NVMe thermal management transitions: TMT1 and TMT2 as an early throttle signal</title><link>https://www.netdata.cloud/guides/nvme/nvme-thermal-management-transitions/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-thermal-management-transitions/</guid><description>&lt;p>An NVMe drive that is thermally throttling rarely looks broken. There are no I/O errors, no kernel messages, no failed commands. Throughput drifts down, latency drifts up, and the application team files a ticket about &amp;ldquo;the database being slow.&amp;rdquo; By the time &lt;code>critical_warning&lt;/code> bit 1 (temperature threshold exceeded) is set, the drive has already been protecting itself for a while.&lt;/p>
&lt;p>The thermal management transition counters close that gap. They tell you the drive has entered a throttling state, how many times, and for how long, well before the warning or critical composite temperature thresholds are crossed. In the monitoring maturity model this is a Mature-level signal: it sits between &amp;ldquo;watch the composite temperature&amp;rdquo; and &amp;ldquo;the drive has declared a thermal problem.&amp;rdquo; See &lt;a href="https://www.netdata.cloud/guides/nvme/nvme-how-it-works-in-production/">the NVMe mental model&lt;/a> for where thermal throttling fits among the characteristic NVMe failure archetypes.&lt;/p></description></item><item><title>NVMe thermal throttling: the drive runs hot and performance quietly drops</title><link>https://www.netdata.cloud/guides/nvme/nvme-thermal-throttling/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-thermal-throttling/</guid><description>&lt;p>The database is slow. CPU utilization is low, the query plan has not changed, and there are no I/O errors in &lt;code>dmesg&lt;/code>, no media errors in SMART, no failed disk anywhere. Yet p99 query latency has doubled and IOPS are half of what they were last week.&lt;/p>
&lt;p>This is the classic NVMe thermal throttling incident. The controller detected that it was running too hot and quietly reduced its own performance to protect itself. There is no error, no log entry, no kernel message. The drive simply gets slower until it reaches thermal equilibrium, and it gets faster again when the load drops. If you are only watching error counters and application logs, you will never see it.&lt;/p></description></item><item><title>NVMe throughput collapse: busy controller, low IOPS, and internal contention</title><link>https://www.netdata.cloud/guides/nvme/nvme-throughput-collapse/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-throughput-collapse/</guid><description>&lt;p>The drive is flat out. Whatever metric you look at says the controller is working constantly. And yet the application is starving: IOPS are a fraction of what the drive is rated for, write throughput has fallen off a cliff, and latency is climbing. Nothing in the kernel log looks broken. No media errors. No resets. The drive is busy, and it is delivering almost nothing.&lt;/p>
&lt;p>The standard instinct (&amp;ldquo;the disk is saturated&amp;rdquo;) is both right and wrong here. The controller is saturated. The host-visible I/O path is not. The drive is burning its internal capacity on work you cannot see: garbage collection, FTL remapping, wear leveling, or simply running its clocks slower because it is too hot.&lt;/p></description></item><item><title>NVMe unsafe shutdowns increasing: power-loss events and silent corruption risk</title><link>https://www.netdata.cloud/guides/nvme/nvme-unsafe-shutdowns-increasing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-unsafe-shutdowns-increasing/</guid><description>&lt;p>The &lt;code>unsafe_shutdowns&lt;/code> field in the NVMe SMART log is a lifetime counter. It increments every time the drive loses power without first receiving a shutdown notification (CC.SHN) from the host. A clean reboot increments &lt;code>power_cycles&lt;/code> but not &lt;code>unsafe_shutdowns&lt;/code>. A power cut, kernel panic, or someone holding the power button increments both.&lt;/p>
&lt;p>The counter never goes down, so the absolute number is history. What matters is the rate of change: every new increment means something cut power to the drive unexpectedly. On enterprise drives with power-loss protection (PLP) capacitors, in-flight writes in DRAM get flushed to NAND before the power dies, and the event is a footnote. On consumer drives without PLP, every increment is a data-loss roll of the dice: writes the host believes were completed may never have reached NAND.&lt;/p></description></item><item><title>NVMe volatile memory backup failed: critical warning bit 4 and a dead PLP capacitor</title><link>https://www.netdata.cloud/guides/nvme/nvme-volatile-memory-backup-failed/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-volatile-memory-backup-failed/</guid><description>&lt;p>Your monitoring shows &lt;code>critical_warning&lt;/code> nonzero on an enterprise NVMe drive. Decoding the bitmask, it is bit 4: volatile memory backup failed. The drive itself is behaving normally. IOPS are fine, latency is fine, media errors are zero. If you only looked at performance dashboards, nothing would look wrong.&lt;/p>
&lt;p>That is exactly the problem. Bit 4 means the power-loss-protection (PLP) capacitor bank on the drive has failed or is degraded. The drive still accepts and acknowledges writes at full speed, but the moment this host loses power unexpectedly, any writes sitting in the controller&amp;rsquo;s volatile DRAM or FTL state are gone. You have lost the one feature that made every previous unsafe shutdown survivable.&lt;/p></description></item><item><title>NVMe warning and critical temperature time: reading the thermal-stress counters</title><link>https://www.netdata.cloud/guides/nvme/nvme-warning-critical-temp-time/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-warning-critical-temp-time/</guid><description>&lt;p>Most NVMe thermal monitoring is live-state monitoring: you watch composite temperature and alert when it crosses a threshold. That works while you are looking. It tells you nothing about the 40 minutes last night when a backup job pushed an M.2 drive past its warning threshold and the controller quietly throttled your database.&lt;/p>
&lt;p>Two fields in the NVMe SMART/Health Information log close that gap: &lt;code>warning_temp_time&lt;/code> (Warning Composite Temperature Time) and &lt;code>critical_comp_time&lt;/code> (Critical Composite Temperature Time). They are cumulative counters, in minutes, recording how long the drive has spent above its Warning Composite Temperature Threshold (WCTEMP) and Critical Composite Temperature Threshold (CCTEMP). They are the drive&amp;rsquo;s own thermal-stress history, kept whether or not anyone was watching.&lt;/p></description></item><item><title>NVMe write amplification: why data_units_written understates real NAND wear</title><link>https://www.netdata.cloud/guides/nvme/nvme-write-amplification/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-write-amplification/</guid><description>&lt;p>The usual incident goes like this: &lt;code>percentage_used&lt;/code> on a drive is climbing faster than planned, someone pulls &lt;code>data_units_written&lt;/code> from the SMART log, divides by power-on hours, and concludes the workload is well within the drive&amp;rsquo;s DWPD rating. Six months later the drive sets critical warning bit 0 and procurement is scrambling. The math was not wrong. The input was.&lt;/p>
&lt;p>&lt;code>data_units_written&lt;/code> counts what the host sent to the controller. It does not count what the controller wrote to the NAND. Between those two numbers sits the flash translation layer: garbage collection relocating valid pages, wear leveling shuffling cold blocks, metadata updates, SLC cache destaging. Every one of those operations programs NAND without appearing in a host-visible counter.&lt;/p></description></item><item><title>NVMe write cliff: SLC cache exhaustion and garbage-collection stalls</title><link>https://www.netdata.cloud/guides/nvme/nvme-gc-write-cliff/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.netdata.cloud/guides/nvme/nvme-gc-write-cliff/</guid><description>&lt;p>Write throughput on an NVMe drive falls off a cliff: 50-90% below baseline, arriving as a step function rather than a gradual decline. Write latency jumps 3-10x at the same moment. The application layer starts reporting slow queries, stalled flush operations, or request timeouts, and the drive looks guilty.&lt;/p>
&lt;p>The confusing part is what is absent. The drive is not hot. There are no media errors. The kernel log is quiet. SMART looks clean. Standard disk monitoring shows a busy device, which tells you nothing you did not already know.&lt;/p></description></item></channel></rss>