SSDs: Advertised vs. Actual PerformanceWritten on January 25, 2013 by Matt Bach
Solid state discs are amazingly fast compared to their more traditional platter counterparts, but historically have stayed out of mainstream use due to the steep pricing of the drives. However, over the last few years pricing has dropped to the point where even budget-oriented customers are considering purchasing smaller SSDs for their OS and programs. While SSDs are great, we keep hearing over and over on the web that people are getting lower performance than they expected based on the manufacturer's advertised performance numbers.
If you have ever used anything that has an advertised speed (from wireless to USB to even cars), you know that you will almost never attain that advertised speed in the real world. We have touched on the difference between advertised and actual performance in regards to wireless in our Introduction to PC Wireless article, but SSDs also have this issue. The advertised read performance is generally pretty close to what you will see in the real world, but for write performance there are two major factors that will likely prevent you from seeing the advertised write speeds. The first is the type of data that the manufacturers use to benchmark their drives and the second is the fact that SSD performance degrades somewhat over time. Additionally, your system also needs to support the features that help improve performance such as SATA 6Gb/s ports (if the SSD is capable of SATA 6Gb/s speeds) and TRIM if you want to achieve the best possible speeds. The one thing you do not need to worry about, however, is using a so-called SATA 6Gb/s cable. These cables are all marketing, and we have shown that they have no performance benefit over so-called SATA 3Gb/s cables as long as you are using high quality cables.
So before we go through our benchmark results, let's first go through why data type and the age of the drive affects write performance.
Compressible vs. Incompressible Data
One of the biggest reasons why a user will not see an SSD's advertised speed when copying files or running their own benchmarks is that the data they are using is typically what is called incompressible data. There is nothing wrong with this type of data, but most manufacturers use highly compressible data for their benchmarks since most modern SSDs are better at writing highly compressible data than incompressible data. This is due to the fact that the controllers found on most modern SSDs use lossless compression to speed up write performance. Basically, it makes compressible data write much faster, but provides little benefit for incompressible data.
What does this mean in terms of real-world performance? The answer is a bit complex since it depends entirely on the data you are working with. If the SSD is being used to store compressible data (i.e. an OS and programs) you will see write performance pretty close to the advertised speeds. If it is being used for incompressible data (i.e. movies, pictures or music) you will likely see much lower write performance than what is advertised. Note that the data type will affect write performance, but should only slightly affect the read performance. So if you are just reading data (loading a program, opening a document, etc.) the data type should not matter as much as if you are writing data (copying a file, saving a document, etc.)
If you are unsure whether the data you are working with is compressible or incompressible, an easy way to find out is to send a sample of that data to a zip file and compare the size of the original data to the size of the zip file. If the file size does not change much, you have incompressible data. If the file size is much lower, then you have compressible data. As an example, here are some common data types both before and after being sent to a zip file:
Out of all these data types, the only one that is highly compressible is the application which compresses to roughly a third of its original size. The others only compress a small amount so they would be considered incompressible data. So, if you are writing directly to an application, you will likely see performance close to the advertised speeds, but if you are writing a common data file you will likely see lower performance. This is just an example using random data taken from our test machine, so we recommend doing this test on your own data to see for yourself what type of data you are working with.
We will be testing to see exactly how big a difference this makes in a later section, but let's first go over why the write performance of an SSD will typically go down a bit after you have used the drive for a while.
Performance Degradation Over Time
Another major factor that determines your drive's write performance stems from how solid state disks actually write new data. Contrary to what many people believe, when you delete a file on a SSD it does not actually get removed from the drive. It simply gets marked as being OK to write over, and the next time data needs to be written to that section of the SSD the controller will simply write over the old data.
The issue is that if there is not enough space where the controller wants to write the new data, the controller has to shuffle around the existing data on the drive to make space. So the SSD controller has to do additional work (both reading the existing data, and writing both the new and existing data back to the drive) which results in lower performance. SSDs have some technology to help combat this (most notably TRIM) but this only alleviates the problem and does not entirely resolve it.
This is a vastly simplified version of what is actually happening and we recommend reading either the How does an SSD write? article from Future Storage or AnandTech's Understanding SSDs Performance Degradation Problem article if you want a more detailed picture. Again, this applies mostly to write performance, and should have no effect on read performance.