A temperature reading of 68C means very different things depending on what is in the slot. For an enterprise HDD, it is past the danger threshold and the drive is likely sustaining damage. For an NVMe SSD, it may be within normal operating range and the drive is not even throttling yet. Alerting on a single global threshold across mixed drive types produces two failure modes simultaneously: false pages on normal NVMe temperatures and missed alerts on dangerously hot HDDs.

Temperature is a weak standalone failure predictor. Google’s 2007 study of over 100,000 drives found very little correlation between failure rates and elevated temperature. Backblaze’s 2014 analysis of over 34,000 drives found near-zero correlation. Within operating specification, temperature variation does not predict which drives will fail.

What temperature does tell you is whether the drive is operating inside its thermal protection envelope and whether cooling infrastructure is degrading. Sustained high temperature accelerates wear: HDD bearing lubricant degrades and magnetic media becomes less stable, SSD NAND retention drops and capacitor lifespan decreases, and NVMe drives thermally throttle before sustaining damage, meaning you may see latency degradation long before any SMART alert fires.

What this means

For ATA drives (HDD and SATA SSD), smartctl reads temperature from SMART attribute ID 194 (Temperature_Celsius) or, on some drives, ID 190 (Airflow_Temperature_Cel). Smartmontools checks ID 194 first, then falls back to 190. Some Seagate drives report temperature via ID 190 instead of 194, and custom scripts that hardcode ID 194 will miss those drives entirely.

For NVMe, the temperature comes from the Composite Temperature field in the SMART/Health Information Log (Log Page 02h). The Composite Temperature is the worst-case reading across the drive’s temperature sensors.

The key distinction from other SMART signals: temperature alone should not trigger a page. Transient spikes from burst I/O or ambient heat self-resolve via throttling. NVMe drives have built-in thermal protection that progresses from performance throttling to shutdown. A temperature reading without the NVMe Critical Warning bit 1 set means the drive is operating within its own protection envelope. The definitive indicator for an NVMe thermal emergency is Critical Warning bit 1 (temperature threshold exceeded), not the raw temperature value.

flowchart TD
    A["High temperature reading"] --> B{"Drive type?"}
    B -->|"HDD"| C["Apply HDD thresholds:\n>55C degrading, >60C dangerous"]
    B -->|"SATA SSD"| D["Apply SSD thresholds:\n>65C degrading, >70C dangerous"]
    B -->|"NVMe"| E["Check vendor WCTEMP/CCTEMP\nand Critical Warning bit 1"]
    E --> F{"Bit 1 set?"}
    F -->|"Yes"| G["TICKET: thermal emergency\nconfirmed"]
    F -->|"No, near WCTEMP"| H["TICKET: investigate cooling,\ncheck Warning/Critical Time"]
    F -->|"No, temp normal"| I["Transient spike:\nno action needed"]

Type-aware thresholds

Never apply a single temperature threshold across HDD, SATA SSD, and NVMe. Each drive type has a fundamentally different thermal envelope.

Drive typeDegrading (sustained)DangerousThreshold source
HDD>55C>60CManufacturer operating spec
SATA SSD>65C>70CManufacturer operating spec
NVMeWCTEMP (typically 70-80C)CCTEMP (typically 80-85C)Identify Controller data, vendor-specific

NVMe thresholds are vendor-defined. WCTEMP (Warning Composite Temperature Threshold) and CCTEMP (Critical Composite Temperature Threshold) are reported in the Identify Controller data structure. A Samsung PM9A3 enterprise NVMe drive may specify WCTEMP at 80C and CCTEMP at 83C, while a consumer NVMe drive may set WCTEMP at 70C. Read the actual values for your drives rather than assuming defaults.

To read vendor thresholds on NVMe:

# Read WCTEMP and CCTEMP from Identify Controller (requires nvme-cli)
nvme id-ctrl /dev/nvme0 | grep -iE "WCTEMP|CCTEMP"

WCTEMP and CCTEMP are defined in Kelvin in the NVMe specification. The nvme id-ctrl output may show raw Kelvin values (e.g., 343K = 70C, 353K = 80C). Check the magnitude before interpreting.

Common causes

CauseWhat it looks likeFirst thing to check
Chassis fan failure or airflow obstructionMultiple drives in same chassis running hot simultaneously, gradual upward trendFan status, airflow path, dust buildup at intake
Failed or detached heatsink (NVMe M.2)Single NVMe drive significantly hotter than peers under same workloadHeatsink mounting and thermal pad contact
Datacenter cooling failureAll drives in a rack or row rising togetherAmbient intake temperature at the rack
Adjacent hot component (GPU, CPU, dense neighbor)One or few drives near heat source running hotter than fleet baselinePhysical layout and thermal zones
Sustained heavy write workload (NVMe)Temperature rises with write intensity, drops when workload subsidesI/O throughput vs temperature correlation
Drive internal faultSingle drive hot, others normal, no workload explanationSuspect drive-specific hardware fault, plan replacement

Quick checks

# Read ATA drive temperature (HDD or SATA SSD)
smartctl -A /dev/sdX | grep -i temperature

# Read NVMe composite temperature
smartctl -A /dev/nvme0n1 | grep -i temperature

# Check NVMe warning and critical composite temperature time
smartctl -a /dev/nvme0n1 | grep -iE "Comp.*Temperature"

# Check NVMe critical warning byte (bit 1 = temperature)
smartctl -a /dev/nvme0n1 | grep -i "critical warning"

# Read vendor thermal thresholds from Identify Controller
nvme id-ctrl /dev/nvme0 | grep -iE "WCTEMP|CCTEMP"

# Check SCT temperature history (ATA drives that support it)
smartctl -l scttemp /dev/sdX

How to diagnose it

  1. Identify the drive type. Confirm whether the device is an HDD, SATA SSD, or NVMe using smartctl -i /dev/sdX or smartctl -i /dev/nvme0n1. The drive type determines which thresholds apply.

  2. Read the current temperature. For ATA drives, note whether the value comes from ID 194 or ID 190. For NVMe, read the Composite Temperature and cross-reference against WCTEMP and CCTEMP.

  3. Check the duration. A single high reading is not actionable. For ATA drives, use SCT temperature history (smartctl -l scttemp) to see how long the drive has been hot. For NVMe, check Warning Composite Temperature Time and Critical Composite Temperature Time. Non-zero values indicate cumulative minutes above thresholds, even if the current temperature is normal.

  4. Determine scope. One drive, several drives in the same chassis, or all drives in a row or rack? Multiple drives overheating simultaneously indicates an environmental problem, not a drive fault.

  5. Correlate with workload. Did the temperature spike coincide with a sustained write workload? NVMe drives generate significant heat under heavy writes. If temperature drops when the workload subsides, the drive is operating normally within its thermal envelope.

  6. Check for secondary effects. On HDD, thermal expansion can cause seek errors (ID 7) and raw read errors (ID 1). On NVMe, check whether I/O throughput has dropped (throttling in progress) and whether Critical Warning bit 1 is set.

  7. Assess thermal headroom. For NVMe, compare current temperature against WCTEMP. More than 10C below WCTEMP is comfortable. 5-10C below WCTEMP means investigate cooling proactively. At or above WCTEMP means active throttling is likely in progress.

Metrics and signals to monitor

SignalWhy it mattersWarning sign
Drive temperature (ID 194 or 190 for ATA, Composite Temperature for NVMe)Core environmental indicator; sustained high temperature accelerates wearSustained above type-specific threshold; upward trend without workload change
NVMe Critical Warning bit 1Definitive indicator that composite temperature exceeded critical thresholdBit set
NVMe Warning/Critical Composite Temperature TimeCumulative minutes above thresholds; non-zero indicates past overheating even if current temp is normalAny non-zero value, especially if increasing
I/O throughput and latencyThermal throttling silently reduces performance before any SMART alertThroughput drops without load change, latency increases, correlated with temperature rise
Ambient temperatureDistinguishes drive-specific heating from environmental heatingRising across multiple drives simultaneously
Seek Error Rate (HDD, ID 7) normalized valueThermal expansion affects head positioning accuracyDeclining normalized value coinciding with temperature spike

Fixes

Cooling infrastructure failure (multiple drives affected)

If multiple drives in the same chassis, row, or rack are running hot, the problem is environmental. Check chassis fan status and RPM, airflow path obstructions (cables, debris, dust at intake), datacenter CRAC unit status, and ambient intake temperature at the rack. Fix the infrastructure. The drives will recover when temperatures return to normal range.

Single NVMe drive overheating

M.2 NVMe drives in sustained write workloads can hit throttle temperatures quickly without a proper heatsink. Verify heatsink mounting and thermal pad contact between the controller and the heatsink. If the heatsink is correct and the drive is still overheating under normal workloads, consider Host Controlled Thermal Management (HCTM) to set TMT1/TMT2 thresholds if the drive supports it. A single drive running hot while neighbors are normal, with no workload explanation, may indicate an internal fault. Plan for replacement.

Transient spikes (no action needed)

If the temperature spike coincided with a burst workload and resolved on its own, and the NVMe Critical Warning bit 1 was never set, no action is needed. The drive operated within its thermal protection envelope. Do not page on transient spikes.

smartd configuration

smartd temperature reporting is disabled by default. To enable it, use the -W directive in smartd.conf:

-W DIFF[,INFO[,CRIT]]

DIFF is the minimum temperature change between polls that generates a log entry. INFO triggers an informational alert at the specified temperature. CRIT triggers a critical alert. For example, -W 2,40,45 logs informational at 40C and critical at 45C.

These values must be drive-type-aware. A single -W directive applied to all drives will page on normal NVMe operating temperatures while missing dangerously hot HDDs. Use separate smartd.conf entries with device-specific directives, or handle type-aware alerting in your monitoring system.

Gotchas

Firmware temperature bugs. Some NVMe drives report implausibly low temperatures (below 0C or around 4C) due to firmware issues. Known examples include certain Crucial P2 models. If you see a temperature that is physically impossible, suspect a firmware reporting bug, not a cooling problem.

Cold start false positives. Some SMART attributes show anomalous values during the first few minutes after power-on. Temperature may read zero or very low. Allow at least 5 minutes of warm-up before trusting readings.

Sensor lag. The drive’s internal sensor may lag behind actual component temperature. A drive can hit dangerous internal temperatures before the sensor registers the change. The Warning and Critical Composite Temperature Time counters capture cumulative exposure that a single point-in-time reading misses.

HDDs also fail when too cold. The Google and Backblaze studies found that very cold drives (below 20C) also showed elevated failure rates. This matters for drives in unheated facilities, outdoor enclosures, or during cold starts in winter.

Prevention

  • Baseline every drive at deployment. Record the normal operating temperature under typical load. A sustained 10C increase from baseline without a workload change is more diagnostic than an absolute threshold.
  • Monitor Warning/Critical Composite Temperature Time for NVMe. These cumulative counters reveal past overheating events even when current temperature is normal. Non-zero values indicate the drive has spent time above thresholds.
  • Track ambient and chassis temperatures over time. Cooling degradation is gradual. A slow upward trend across a chassis, with no workload change, often precedes a fan failure or airflow obstruction.
  • Do not treat temperature as a failure predictor. Use it as an environmental and cooling-health indicator. Drive failure prediction should center on media integrity signals (reallocated sectors, pending sectors, uncorrectable errors, NVMe available spare, media errors).

How Netdata helps

  • Correlate per-second drive temperature with I/O latency and throughput on the same timeline. NVMe thermal throttling silently reduces performance before any SMART alert fires. Seeing temperature and latency together reveals the cause of latency spikes that would otherwise require manual cross-referencing of smartctl and iostat output.
  • Apply type-aware thresholds rather than a single global cutoff. The SMART collector distinguishes HDD, SATA SSD, and NVMe, preventing false pages on normal NVMe operating temperatures and missed alerts on dangerously hot HDDs.
  • Track the NVMe Critical Warning byte at per-second granularity. Bit 1 (temperature threshold exceeded) is the definitive thermal emergency indicator. Alerting on it rather than raw temperature values eliminates false positives from transient spikes.
  • Surface Warning and Critical Composite Temperature Time counters alongside current temperature. Non-zero values reveal past overheating events even when the current reading is normal.
  • Detect gradual cooling degradation through anomaly detection on temperature trends. A slow upward drift across multiple drives in a chassis, with no workload change, is the earliest sign of fan failure or airflow obstruction that static thresholds miss.