For our test hardware, we will be using the following components:
We will be using an Intel 520 120GB SSD which has an advertised sequential read speed of 550 MB/s and a sequential write speed of 500 MB/s. We are only going to be testing a single Intel SSD, so keep in mind that our results are meant to be more of an example and not an exact indication of what performance you will see in your own system. The SSD was configured as a secondary storage drive and we installed both the Intel RST and the Intel SSD Toolbox software. Lastly, between benchmark sets we performed a secure erase on the drive so that previous benchmark runs would not affect the results.
To benchmark the SSD, we used CrystalDiskMark which is our go-to hard drive benchmark here at Puget Systems. It is consistent, reliable, and allows us to customize many different settings from the size and type of data used to the number of passes for each benchmark run. Each time CrystalDiskMark runs, it writes about 9.2GB of data to the drive, so by looping the benchmark and recording the results for each run we can plot the speed of the drive compared to how much total data has been written to the drive.
We left the benchmark to loop until it had written a total of approximately 1.8TB worth of data, which essentially filled the drive about 15 times. We also ran our benchmarks multiple times with the data type set to both Random (incompressible) data and All 0x00 (compressible) data to see how much of an effect data type actually has on performance.
Intel advertises a sequential read performance of 550 MB/s, which is close to our compressible data results. The 35 MB/s (or roughly 7%) difference is small enough to be attributed to the slight variations between CrystalDiskMark and the benchmark program that Intel uses.
What is interesting is that both the peak and average read performance for incompressible data is slightly lower than the compressible data. It isn't much, but we expected there to be virtually no difference at all so it was a bit of a surprise. Also, the difference between the maximum and average performance is very minimal which indicates that the read performance of this drive is very consistent. And finally, the performance did not drop much even after a ton of data had been written to the drive.
So for read performance, the data type makes a small difference (around 5%) and there is little to no loss in performance over time.
While the read benchmarks were pretty boring, we get some really interesting data with the write benchmarks. Intel advertises a sequential write performance of 500 MB/s, which we saw almost exactly with the compressible data. With incompressible data, however, we only saw a maximum of 193.3 MB/s, or about 38% of the advertised speed. This is a huge difference and likely the biggest reasons why users sometimes think that their drive is not performing at full speed.
We can also clearly see the difference in compressible and incompressible data over time. Compressible data only has a minor performance loss, but - with the exception of the random write 2KB (QD=1) test - incompressible data has a very large change in performance at two key points. The first is after about 40GB of data had been written to the drive which is when the random 512KB and random 4KB (QD=32) performance drops to about 160MB/s. Oddly, sequential write performance goes a bit crazy at this point, jumping between 100 and 160 MB/s.
The second point is after about 380GB of data (roughly 4x the total drive size) had been written to the drive which is when things started to level off and become consistent. Because of this, this point is where we started to calculate our average write performance numbers in the chart above.
So, compressible data gives you great performance and even achieves the manufacturer's advertised speed without any major performance degradation over time. Incompressible data (which again is things like music, movies, pictures and most data files) doesn't get anywhere close to the advertised speed and has a significant drop in performance over time. At the fastest, we saw speeds that were only about 38% of the advertised speed which dropped to about 32% of the advertised speed after the drive had been heavily used.
TRIM vs. No TRIM
All of our benchmarks so far have been performed with TRIM enabled, but since not all systems have automatic TRIM support (most commonly those running Windows XP) we thought we would show exactly how much of a benefit TRIM provides. Note that on a system that supports TRIM, the process should be automatic so there is nothing you need to do to enable it. If you want to double check that TRIM is running, however, simply type "fsutil behavior query disabledeletenotify" into an elevated command prompt. If it comes back with 0, then TRIM is enabled. If it comes back with 1, then TRIM is disabled.
If you want to manually enable/disable TRIM, the command is very similar. Just type "fsutil behavior set disabledeletenotify X" into an elevated command prompt where X is either 0 to enable TRIM or 1 to disable TRIM.
We decided to benchmark with incompressible data only since that is the type of data that showed the biggest fluctuations in our previous benchmarks and is also the most likely type of data that the average user will write to an SSD. To analyze our results, we decided to separate each test into its own graph and turn up the scale a bit to get a closer look at the differences.
Frankly, we expected TRIM to do a bit more than what our results show. It definitely makes a difference, but only by about 2-4%. We see no reason to turn it off, but at the same time it doesn't appear to be critically important; at least on the model of SSD we used for testing. Solid state drives have come a long way since TRIM was introduced, so we wouldn't be surprised if there was some other unknown type of garbage collecting going on with this drive that was based solely on the controller. Unfortunately, that type of information is usually very confidential and is not something we are likely to be able to test anytime soon.