Our last two articles have presented an initial performance examination of a consumer SandForce based SSD from a throughput and IOPS perspective. In this article we dive deeper into the throughput performance of the drive, along with a comparison to an Intel X-25E SSD. I think you will be surprised at what is discovered.
Introduction and Review of Initial Throughput Performance
The last two articles have presented some initial performance results of a consumer SandForce-based SSD. The reason so much time is being devoted to SandForce based SSD’s is that they use a real-time compression algorithm to improve performance and increase longevity of the SSD. What makes it even more interesting is that performance and longevity of the SSD depend upon your data (very unique and exciting concept). If your data is very compressible then you get a performance boost and a longer lasting SSD. If your data is very incompressible, then you don’t get any performance boost and the SSD will last as long as any other with the same type of cells.
So far the initial examination of the SandForce based SSD as shown the following general trends:
- As the data compressibility decreases, the performance of the drive decreases
- In the case of write throughput performance, the decrease can be fairly large
- In the case of read throughput performance, the decrease is not too large, reaching only about 20% when going from data that is very compressible to data that is very incompressible.
- Write IOPS performance also decreases as the data compressibility decreases but the performance is still very good
- Read IOPS performance also decreases as the data compressibility decreases but the reduction in performance is only a small amount (less than 20%) when going from data that is very compressible to data that is very incompressible.
But there are some still unanswered questions about the performance. In particular, it would be nice to have more insight into how quickly the performance decreases as a function of the data compressibility. Does is decrease very quickly or is it more gradual? Also, how does the performance compare to a flag ship SSD such as the Intel X-25E SSD? Is it just as good or close? Is it better?
In this article, the throughput performance of the drive is examined more in depth and compared to the Intel X-25E. The same set of tests are run against both SSD’s on the same system to hopefully gain some insight into the performance differences.
The intent of the expanded examination is to get a better understanding of how the SandForce SSD performs as the data compressibility changes and how this performance compares to a very high performing SSD. This article extends the work from the first article in two ways: (1) it tests more data compressibility levels, and a smaller record size, and (2) it performs all of the same tests on an Intel X-25E SSD as a comparison.
As with the first tests, this article uses IOzone as the benchmarking tool. Recall that IOzone is one of the most popular throughput benchmarks. It’s open-source and is written in very plain ANSI C (not an insult but a compliment). It is capable of single thread, multi-threaded, and multi-client testing. The basic concept of IOzone is to break up a file of a given size into records. Records are written or read in some fashion until the file size is reached. Using this concept, IOzone has a number of tests that can be performed. The thirteen tests listed below, are performed to measure the throughput capability of the drives (SandForce and Intel).
- Random Read
- Random Write
- Backwards Read
- Record Rewrite
- Strided Read
You can refer to the first article for more details on these tests.
The tests were run on the same system as previous tests. The highlights of the system are:
- CentOS 5.4 with a 2.6.32 kernel
- GigaByte MAA78GM-US2H motherboard
- An AMD Phenom II X4 920 CPU
- 8GB of memory (DDR2-800)
- The OS and boot drive are on an IBM DTLA-307020 (20GB drive at Ultra ATA/100)
- /home is on a Seagate ST1360827AS
- Micro Center SandForce 1222, 64GB SSD. This is mounted as
- Additionally, a 64GB Intel X-25E SSD is used, courtesy of Intel. This is mounted as
- ext4 is used as the file system with the default options
This study adds one new record size to the tests, 64KB. I wanted to add a smaller record size to see if it had any impact on performance for either drive (SandForce or Intel). This was added to the 1MB, 4MB, 8MB, and 16MB record sizes. The command line for the first record size (64KB) is,
./IOzone -Rb spreadsheet_output_64K.wks -s 16G -+w 98 -+y 98 -+C 98 -r 64K > output_64K.txt
The command line for the second record size (1MB) is,
./IOzone -Rb spreadsheet_output_1M.wks -s 16G -+w 98 -+y 98 -+C 98 -r 1M > output_1M.txt
The command line for the third record size (4MB) is,
./IOzone -Rb spreadsheet_output_4M.wks -s 16G -+w 98 -+y 98 -+C 98 -r 4M > output_4M.txt
The command line for the fourth record size (8MB) is,
./IOzone -Rb spreadsheet_output_8M.wks -s 16G -+w 98 -+y 98 -+C 98 -r 8M > output_8M.txt
The command line for the fifth record size (16MB) is,
./IOzone -Rb spreadsheet_output_16M.wks -s 16G -+w 98 -+y 98 -+C 98 -r 16M > output_16M.txt
The options “-+w”, “-+y” and “-+C” define the how much “dedupability” there is in the data and buffers. In the above command lines “98″ means that the data can be deduplicated (compressed) 98%. Note that these options are only available with a later version of IOzone.
For this article several new compressibility levels were added to the testing. Altogether there are six compressibility levels: (1) 98%, (2) 75%, (3) 50%, (4) 25%, (5) 2%, and (6) random. The last compressibility level is one that allows IOzone to randomly pick the compressibility level of the data, presumably randomly throughput the test run. That option is “-+d” and the “-+w”, “-+y” and “-+C” are dropped from the command line.