Samsung 950 Pro M.2 Throttling AnalysisWritten on June 6, 2016 by Matt Bach
The newer ultra-fast M.2 drives such as the Samsung 950 Pro give absolutely amazing performance (up to 2.5GB/s read and 1.5GB/s write!), but one major issue with these drives is that they will throttle if the drive gets too hot. When that happens, the speed of the drive is greatly reduced - in a worst case situation it may even end up slower than a standard SATA-based SSD. This has been discussed in many reviews of the Samsung 950 Pro and we have discussed this ourselves in our Samsung 950 Pro review article.
If you are purchasing a M.2 drive because you need high transfer speeds, hearing that it will slow down if it gets too hot is likely a major concern. To help you decide if it is something you need to worry about, we decided to benchmark a Samsung 950 Pro in a variety of M.2 slot locations with a range of system configurations. From this, you should be able to find a configuration that at least roughly matches your system to see how quickly and how much a Samsung 950 Pro might throttle for you.
Before we jump into things, we wanted to apologize for the amount of charts in this article. We try to keep things simple when possible, but there is simply so much relevant data from our testing that a group of charts was really the only way to fully present our findings. If you prefer to just see our conclusions, feel free to jump ahead to the conclusion section.
In order to thoroughly examine how the Samsung 950 M.2 drive throttles under different situations, we used three different motherboards to provide us with four different M.2 slot locations to test. The Z170-WS also has support for U.2 drives, so we will be able to do a control test to see how a U.2 and standard SATA SSD behave when running the same benchmark script we will be using on the M.2 drive. Our entire test setup consists of the following hardware:
|Test Hard Drive:||Samsung 950 Pro 512GB M.2 x4 SSD
Intel 750 1.2TB U.2 SSD
Samsung 850 Pro 1TB SATA SSD
|CPU:||Intel Xeon E5-1650 V3 3.5GHz Six Core||Intel Core i7 6700K 4.0GHz Quad Core 8MB|
|CPU Cooler:||Gelid Tranquillo Rev 3|
|RAM:||4x Crucial DDR4-2133 4GB||2x Crucial DDR3-1600 8GB|
|Chassis:||Fractal Design Define R5 Titanium
(front and rear fan @ 5v)
|GPU:||1-2x NVIDIA GeForce GTX Titan X 12GB|
|OS Hard Drive:||Samsung 850 Pro 512GB SATA 6Gb/s SSD|
|OS:||Windows 10 Pro 64-bit|
|PSU:||EVGA SuperNOVA 850W P2||Silverstone ST45SF-G 450W|
|Software:||IOMeter 1.1.0 (Performance benchmark)|
With this set of hardware, we will be able to test the M.2 drive in slots that are below the top PCI-E slot, below the bottom PCI-E slot, upright (sticking straight out from the motherboard), and on the underside of the motherboard. The fact that we have to use different motherboards (including entirely different chipsets and CPUs) is not ideal since one board may give different performance results from another, but this is the only way we could find to test all the different slot locations we were interested in. All this really means is that we have to prioritize looking at when the drive throttles rather than the absolute speed the drive is running at.
We also wanted to determine how much of an impact the ambient temperature inside the chassis has on throttling. To find out, we are using up to GeForce GTX Titan X video cards that we will either leave at idle (as a best-case scenario) or running a GPU stress-testing application called Furmark (which would be a worst-case scenario).
To make sure our results are as accurate as possible we used a combination of IOMeter .bat files and a custom AutoIt script to automatically benchmark the drive with different work loads (sequential read/write and random read/write). The script automatically wiped the drive prior to each round of testing, created the test file on the drive, then ran though each benchmark while pausing for 5 minutes between tests to ensure that the drive has fully cooled down. Each run (including with the GPU at idle and at full load), took approximately 3 hours to complete.
One thing you will notice is that we are not showing any temperature readings from the M.2 drive. We actually logged the temperature from the drive using AIDA 64 during all our testing, but it turns out that the Samsung 950 Pro actually has two thermal sensors - one near the storage modules and one to control throttling. Unfortunately, the sensor that is read by AIDA 64 (and every other hard drive monitoring utility we tried) is actually from the thermal sensor near the storage chips, not the control sensor. The good part about this is that you can see if the drive is getting hot enough to potentially corrupt your data, but it does mean it is not a great indicator of whether your drive is close to throttling or not.
Just to show how the temperature reported does not match when the throttling occurs, below is a chart showing the temperature we recorded when doing the sequential read performance testing with a single GPU at idle.
If you compare this chart to the performance chart, you will find that three of the four slot locations gave temperature readings of around 70 ºC when the drive started to throttle. However, the upright M.2 slot gave us a consistent thermal reading of only about 26 ºC when drive started throttling which is over 40 ºC cooler! This is just one example, but throughout our testing (and in our additional cooling testing article as well) we saw huge variations between the reported temperature and when the drive started to throttle. Clearly, this means that the temperature reading from the Samsung 950 Pro is not a good indicator of whether the drive is close to throttling or not, so we decided to leave the thermal readings out completely.
Control Comparison - U.2 and SATA drives
Before we get into testing the Samsung 950 Pro M.2 drive, we first want to determine a baseline to compare it to. To do so, we will be testing a standard SATA Samsung 850 Pro SSD as well as a U.2 Intel 750 NMVe drive. For those that are not familiar with U.2, it is actually very similar to M.2 in that it connects to the motherboard directly though the PCI-E bus - so it should be capable of the same performance as a M.2 drive. Unlike M.2, however, it connects via a cable which means it doesn't have as tight of a space requirement as M.2. Because of this, the manufacturer can do things like space out the internal components and add a heatsink to help prevent thermal throttling.
We found that the amount of video cards did not actually have much of an impact on performance for these drives, so in an attempt to keep data overload to a minimum, we are simply going to show you the results with dual video cards at idle and 100% load:
With both drives, we saw no throttling for the sequential read, sequential write, or random read tests; but interestingly both drives did eventually throttle on the random write benchmark. The SATA drive dropped massively in performance after about 110 seconds, and the U.2 drive dropped in performance after about 170 seconds.
This isn't something we expected, but at the same time this is also one of the first times we've ever done this amount of continuous random writes to a drive. We believe that this is likely being caused by the drive running out of overprovisioned area, but we are not 100% sure. To put this into perspective, however, the SATA drive didn't start throttling until after about 37GB worth of random writes and the U.2 drive worked flawlessly until after about 120GB worth of random writes. This is a pretty huge amount of random writes to be doing continuously like this so we wouldn't expect anyone to actually see this in the real world outside of very specific circumstances.
Ideal (no system load) results
In an ideal situation, every component in the system is idle and producing a minimal amount of heat. In this situation, we are showing what should be the longest the Samsung 950 Pro can go without throttling due to drive temperature.
There is a lot of data crammed into the charts above, but the main thing to look at is how quickly the different slots start to throttle and what speeds they throttle to. The charts above can largely be summarized into the following:
|Single GPU||Dual GPU|
|Bottom M.2 Slot||Throttled by ~40% after ~50-60 sec||Throttled by ~60% after ~30 sec|
|Top M.2 Slot||Throttled by ~45% after ~45-50 sec||Throttled by ~55% after ~35 sec|
|Upright M.2 Slot||Throttled by ~42% after ~65-70 sec||Throttled by ~42% after ~65 sec|
|Underside M.2 Slot||Throttled by ~48% after ~53-58 sec||N/A|
It is clear that the "Upright M.2 Slot" takes the longest to start throttling and runs at consistently higher speeds than the other slots. In general, this slot took between ten and thirty seconds longer to start throttling and after throttling was up to 500 MB/s faster than some of the other slots! One thing we will point out is that the Random Read performance of this slot looks poor, but that is actually due to the X99 chipset and not due to the drive throttling.
For the other locations, the top and bottom slots were pretty similar. The bottom slot was better with only a single GPU but the top slot was actually slightly better with dual GPUs. However, both locations were better than the underside slot which ended up throttling to about half the performance the Samsung 950 Pro is capable of.
Worst case (heavy system load) results
While the previous section is a good indication of how soon a Samsung 950 M.2 drive might throttle in ideal situations, it is often the case that the system will be under a load when you need to access the drive. To simulate these situations, we loaded the GPU(s) with Furmark to increase the ambient temperature within the chassis. Note that we did not put a heavy load on the CPU because we wanted to avoid creating a CPU bottleneck that might cause lower results from our benchmark.
Compared to the ideal situation in the last section, loading up the video card(s) to increase the ambient temperature caused the M.2 drive to throttle much sooner. In the worst case, the drive was throttling after only 6 seconds and ended up slower than a standard SATA SSD! Once again, if we primarily look at the sequential read and write performance, the charts above can largely be summarized into the following:
|Single GPU||Dual GPU|
|Bottom M.2 Slot||Throttled by ~52% after ~40 sec||Throttled by ~68% after ~14-17 sec|
|Top M.2 Slot||Throttled by ~50% after ~25 sec||Throttled by ~76% after ~7 sec|
|Upright M.2 Slot||Throttled by ~48% after ~55 sec||Throttled by ~56% after ~40-44 sec|
|Underside M.2 Slot||Throttled by ~70% after ~25 sec||N/A|
Once again, the upright M.2 slot was by far the best slot position. This slot took significantly longer to start throttling than the other slots and especially with two GPUs it throttled much less aggressively. The performance of the Samsung 950 Pro was still cut roughly in half, but that is actually much better than what we saw with the other slot locations.
For the other locations, the bottom M.2 slot was the next best performer - taking roughly twice as long to start throttling than the top slot. It ended up at about the same speed as the top slot with a single GPU, but with two GPUs it ended up noticeably faster.
A lot of our test results really surprised us. We knew that M.2 drives would throttle if they got too hot, but we didn't know that we could cause it to happen so quickly or quite to the extent we measured. There are really three main conclusions that we came to:
- The temperature reported by utilities such as AIDA 64 is not useful to gauge whether the drive is close to throttling or not. As we discussed in the test setup section, this is due to the fact that the Samsung 950 Pro actually has two thermal sensors, but only the sensor near the storage chips (not the control sensor) is being read. As far as we could find, it is not possible to read from the sensor that controls the drive throttling - but if anyone knows of a program that will read this sensor data, we are very interested to hear about it.
- The ambient temperature within the system has a massive effect on when the drive throttles. It makes sense that a drive will throttle sooner in a hotter environment, but in the worst case we were seeing throttling in as soon as six or seven seconds!
- The more exposed the M.2 drive, the longer it takes to throttle. Once again, this seems like a common sense point, but it ended up making a bigger difference than we thought. Especially when the system was put under a load, the upright M.2 slot (with the most open space around the drive) resulted in significantly less throttling than any of the other slots.
If you somehow have the choice of any M.2 slot location, by far the best slot we tested was the upright M.2 slot on the X99 motherboard. In this slot, it took significantly longer to begin throttling, and even after it throttled the open air nature of this slot resulted in much higher performance compared to the other slot locations. Of course, the downside to this type of slot is that you need a fair amount of vertical space so it is not something you will see on a laptop or even a Mini-ITX motherboard.
Other than that, the amount of time you can expect the Samsung 950 Pro to go before throttling really depends on how exposed the drive is. If you have the choice between putting the drive underneath a video card or not, always go with the "not". Same thing with the M.2 slot on the underside of the motherboard - if you have the option to get the drive more exposed, take it.
One thing we want to point out is that it is pretty uncommon to fully utilize a drive this fast to the same extent we did in this article. Very few programs will actually be able to read from a Samsung 950 Pro at full speed for more than a very short period of time - often the drive will have to regularly wait on the CPU or some other component to actually process the data. In truth, the most common situation you might run throttling is going to be if you have two M.2 drives and you are copying large amounts of data from one drive to the other.
Also, keep in mind that if you absolutely need a super fast drive to perform at full performance for longer periods of time, there are a number of alternatives you might consider. The first would be to use a U.2 drive instead like the Intel 750 series. As we showed in the control section, the Intel 750 did not throttle at all yet is very close in performance to the Samsung 950 Pro. Not many motherboards have U.2 support quite yet and the Intel 750 is a bit more expensive, but it should give you maximum performance all the time. Another solution would be to attempt to cool a M.2 drive with additional airflow or a heatsink in order to increase the time it takes to begin throttling. If you are interested in that option we performed further testing in our M.2 Drive Additional Cooling Testing article investigating a range of cooling methods.
M.2 SSD throttling tests vindicate ASUS motherboard designs