Your NVMe SSD Is Thermal Throttling and Killing Transfer Speeds
You kick off a large file transfer and the speed meter shoots up to 3,000 MB/s β then a minute later it's limping along at 400 MB/s. Nothing else changed. The drive isn't failing. Your cable isn't the issue. Your NVMe SSD is simply too hot, and it's protecting itself by cutting its own performance in half.
Thermal throttling is one of the most common and least-diagnosed causes of inconsistent NVMe performance. The good news is that it's almost always fixable without replacing your drive.
What you'll learn
- Why NVMe drives throttle and what temperatures trigger it
- How to monitor your drive's real-time temperature
- How to run a stress test that exposes throttling
- Which physical fixes actually work (and which are marketing fluff)
- How to validate your fix before closing the case
Why NVMe Drives Run Hot
Unlike a 2.5-inch SATA SSD, an M.2 NVMe drive sits on your motherboard with no airflow directly aimed at it. The form factor is tiny β a stick the size of a stick of gum β but the controller chip on it can pull several watts under sustained load. That heat has nowhere to go except into the PCB and, if you're lucky, into a heatsink or the motherboard's M.2 thermal pad.
When the controller reaches its thermal limit (typically somewhere in the 70β80Β°C range, depending on the manufacturer and controller generation), the drive's firmware steps in. It reduces clock speeds and, in severe cases, caps write throughput dramatically. This is not a bug β it's intentional self-preservation. A throttled drive is better than a dead one.
How to Check Your NVMe Temperature Right Now
Before you buy anything or open your case, confirm you actually have a temperature problem. All modern NVMe drives expose temperature data over S.M.A.R.T., and you can read it with free tools.
On Windows
CrystalDiskInfo is the fastest option. Install it, open it, and look for the temperature reading on your NVMe drive. A drive sitting idle at 45β55Β°C is normal. Anything above 60Β°C at idle deserves attention. You can also use the built-in Windows Task Manager β click the Performance tab, select your disk, and temperature appears in some builds of Windows 11.
For a command-line check, smartctl from the smartmontools package gives you raw data:
smartctl -a /dev/nvme0Look for the lines labeled Temperature Sensor 1 or Temperature: in the output.
On Linux
The nvme-cli package gives you direct access:
sudo apt install nvme-cli
sudo nvme smart-log /dev/nvme0The temperature field in the output is your current controller temperature in Kelvin. Subtract 273 to convert to Celsius. A value of 348K means 75Β°C β that's warm.
On macOS
If you have an external NVMe in a USB or Thunderbolt enclosure, smartctl via Homebrew works the same way. Internal Apple Silicon drives use a proprietary interface and don't expose standard NVMe SMART data through third-party tools.
Running a Stress Test to Catch Throttling in the Act
An idle temperature reading doesn't tell the whole story. Throttling happens under sustained load, so you need to push the drive and watch the temperature climb in real time.
On Windows, use CrystalDiskMark with a large queue-depth sequential write test. Watch CrystalDiskInfo in a second window during the test. If the temperature spikes past 70Β°C and your MB/s numbers drop between test passes, you have your answer.
On Linux, fio is the most reliable load generator:
fio --name=thermal_test --filename=/mnt/nvme/testfile --size=8G \
--bs=128k --rw=write --direct=1 --numjobs=1 --runtime=120 \
--time_based --group_reportingRun this and watch nvme smart-log in a separate terminal every 10 seconds. A healthy drive holds its temperature below 70Β°C for the duration. A throttling drive climbs steadily and your throughput numbers in the fio output will visibly drop in the later intervals.
The Physical Fixes, Ranked by Effectiveness
Once you've confirmed throttling, you have several options. Here they are in order of impact.
1. Use Your Motherboard's Built-In Heatsink
Most mid-range and high-end motherboards ship with an M.2 heatsink cover. If yours did and you never installed it, that's the first thing to fix. The thermal pad between the cover and the drive controller makes a significant difference. Check your motherboard manual β the pad is often included in the accessory bag and needs to be applied before the cover goes on.
2. Add an Aftermarket M.2 Heatsink
If your board has no M.2 heatsink, add one. Aluminum M.2 heatsinks with pre-applied thermal pads are inexpensive and widely available. The key spec to check is height clearance β make sure the heatsink won't foul a GPU installed in the primary PCIe slot. Most are low-profile enough to clear, but measure before you buy.
3. Improve Case Airflow
A heatsink that sits in stagnant hot air doesn't do much. If your case has a mid-case fan or you can route an exhaust fan to pull air across the motherboard area, that helps. An NVMe drive positioned near a hot GPU without airflow will throttle regardless of what heatsink you add.
4. Move the Drive to a Different M.2 Slot
Some boards have multiple M.2 slots. The one closest to the CPU and GPU often sits in the worst thermal environment. If your board has a second slot on the lower half of the board with better airflow, try moving the drive there. Check whether the second slot supports the same PCIe generation first β some boards put Gen 3 on the lower slots while the top slot is Gen 4 or Gen 5.
5. Repaste or Replace the Thermal Pad
If your drive already has a heatsink and it's still throttling, the thermal interface may be degraded. Pre-applied pads on budget heatsinks are sometimes mediocre. Replacing with a quality thermal pad (or a thin layer of quality thermal paste if the heatsink design allows for it) can knock several degrees off the controller temperature.
What Doesn't Actually Help
Thermal throttling fixes attract a lot of folk remedies. A few things that won't make a meaningful difference:
- Undervolting through software alone β consumer NVMe drives don't expose voltage controls the way CPUs do. OS-level power profiles can limit peak performance slightly, but they won't solve a genuine thermal problem.
- Blowing compressed air at an already-installed drive with no heatsink β momentarily moves air but provides no sustained cooling.
- Thermal throttle warnings in BIOS set to a higher limit β most consumer drives don't expose this setting; the throttle threshold is baked into the controller firmware.
Common Pitfalls When Fixing Throttling
Forgetting the thermal pad. A heatsink resting on a bare PCB with an air gap provides almost no benefit. The thermal pad is what closes the gap between the heatsink and the controller die. Don't skip it.
Over-tightening the heatsink. M.2 heatsink screws are small and the threads on the motherboard standoff are shallow. Snug is enough. Cranking them down can bow the heatsink or damage the drive.
Testing immediately after installation. After you add a heatsink and close the case, let the system run for 10β15 minutes under light load before running your stress test. Thermal paste or pads need a few heat cycles to fully seat and spread.
Ignoring the GPU as a heat source. A high-end GPU running at full load can push a lot of heat into the case. If your M.2 slot is directly above the GPU, even a good heatsink may struggle. Route airflow accordingly.
Validating Your Fix
After any physical change, re-run the same stress test you used to confirm the problem. You're looking for two things: peak temperature staying below 70Β°C under sustained load, and throughput numbers that stay consistent from the start of the test to the end rather than sagging over time.
If temperatures are down but still climbing to 68β70Β°C under load, that's acceptable for most drives. If you're seeing 75Β°C or above, the throttle risk is real and you may need a combination of fixes rather than just one.
Document your before and after numbers. A simple table in a notes app or text file is enough:
| Condition | Peak Temp (Β°C) | Sustained Write (MB/s) |
|---|---|---|
| Before fix (no heatsink) | 82 | 410 |
| After heatsink + pad | 64 | 2,900 |
Those numbers are illustrative, but the gap between a throttling drive and a properly cooled one is often that dramatic.
Next Steps
- Install CrystalDiskInfo or
nvme-cliand check your drive's idle temperature today β you may already be running hot without knowing it. - Run a 60β120 second sustained write test and watch the temperature climb in real time to confirm or rule out throttling.
- If your motherboard shipped with an M.2 heatsink cover and you haven't installed it, do that first β it's free and often sufficient.
- For drives without a board heatsink, pick up an aftermarket M.2 cooler and verify the height clearance against your GPU before ordering.
- After any fix, rerun your benchmark and compare peak temperature and sustained throughput to confirm the problem is actually solved.
π€ Share this article
Sign in to saveRelated Articles
Comments (0)
No comments yet. Be the first!