SSD Performance: 250 GB OCZ Z Drive IO Speed vs. Read/Write Ratio
This blog begins a series of blogs which present test results of extensive testing performed at Velobit to investigate SSD IO bandwidth when SSDs are operated in a simulated enterprise environment. This first blog will document the test set up and procedures and present the results from one tested device. In following weeks, I will refer the reader back to this blog for test set up and procedure information and simply present the results for another device. After presenting results of a particular week, I will make observations as appropriate. Test Motivation and Procedure Many SSD manufactures specify the performance of their devices as maximum sequential read and write bandwidth. We wanted to determine the effect of mixed reads and writes on IO bandwidth to simulate an SSD in an enterprise environment and to investigate how different SSD architectures and designs can impact device performance. The idea here is to illustrate how varied the performances of SSDs are and to point out that the IO bandwidth achieved in a real world environment may be different than what is expected. We tested 8 different SSDs from 7 manufactures. Some are SATA devices and some are PCI-E devices. We used a Linux based system running with the Intel Open Storage Toolkit, a tool similar to Iometer that runs on Linux. The Open Storage Toolkit generates synthesized workloads with various sizes and queue lengths and also provides monitoring and IO tracing capabilities. We also used another set of tools available in Linux, blktrace and blkparse that intercept all block-level requests. The idea was to observe IO bandwidth under operating conditions. For each device, we ran two specific tests. Both tests were identical except we changed the size of the IO request. The first test had a read/write data request size of 4 KB and for the second test, the data request size was 64 KB. We varied the read/write ratio from 100% read, 0% write to 0% read, 100% write in specified increments and recorded IO bandwidth at each test ratio. We ran the tests with 64 outstanding IO requests to maximize bandwidth. Test SSD: 250 GB OCZ Z Drive PCI-E based SSD Test 1: 4 KB Data Request Size Figure 1 shows the measured IO bandwidth as read/write ratio is varied when the request size is 4 KB. The data shows that as the read/write ratio goes from 100% read to 50/50 read/write, the IO bandwidth drops significantly. Further, as the read/write ratio goes to 100% write, the IO bandwidth increases approximately 40% from the 50/50 test. While it may seem counter intuitive that the IO bandwidth should increase when the write percentage increases, we believe the reason for this is that the writes can be scheduled to be stored anywhere in the SSD (possibly taking advantage of parallelism within the device) while reads have to access memory exactly where the requested data was stored. The writes following the reads have to wait for the previous reads to complete, slowing down the logging of writes for certain mix of read/write percentages.
Figure 1: Read and write mixing of OCZ Z Drive with 4 KB request size
Test 2: 64 KB Data Request Size Figure 2 shows the data for the same test run with a 64KB data request size. The results are similar to the 4 KB test. IO bandwidth decreased from 100% read test to the 50/50 read/write ratio test and then the IO bandwidth increased again when the test was 100% write just as in test 1. For the 64KB data request size the IO bandwidth increase was approximately 38%. Figure 2: Read and write mixing of OCZ Z Drive with 64 KB request size and 64 outstanding IO Come back next week for results and observations on another SSD.