Random Data Performance

Many of you correctly brought up concerns with our use of Iometer with SandForce drives. SandForce's controller not only looks at how data is being accessed, but also the actual data itself (more info here). The more compressible the data, the lower the write amplification a SandForce drive will realize. While Iometer's random access controls how data is distributed across the drive, the data itself is highly compressible. For example, I took a 522MB output from Iometer and compressed it using Windows 7's built in Zip compression tool. The resulting file was 524KB in size.

This isn't a huge problem because most controllers don't care what you write, just how you write it. Not to mention that the sort of writes you do on a typical desktop system are highly compressable to begin with. But it does pose a problem when testing SandForce's controllers. What we end up showing is best case performance, but what if you're writing a lot of highly random data? What's the worst performance SandForce's controller can offer?

An upcoming version of Iometer will allow you to use 100% random data to test just that. Our own Ryan Smith compiled an early release of this version of Iometer so we could see how much of an impact purely random data has on Iometer performance. When the Use Random Data box is checked, the actual data Iometer generates is completely random. To confirm I tried compressing a 161MB output from Iometer with Use Random Data enabled:

The resulting file was actually slightly bigger. In other words, it could not be compressed. Perfect.

Iometer Performance Comparison - 4K Aligned, 4KB Random Write Speed
  Normal Data Random Data % of Max Perf
Corsair Force 100GB (SF-1200 MLC) 164.6 MB/s 122.5 MB/s 74.4%
OCZ Agility 2 100GB (SF-1200 MLC) 44.2 MB/s 46.3 MB/s 105%

With data that can't be compressed, the SF-1500 (or SF-1200 with 3.0.1 firmware) will drop from 164.6MB/s to 122.5MB/s. That's still faster than any other SSD except for Crucial's RealSSD C300. The Agility 2 and other SF-1200 drives running 3.0.5 shows no performance impact as it's already bound by the performance of its firmware. Since the rest of the Agility 2's performance is identical to the Force drive I'll only include one set of results in the table below:

Iometer Performance Comparison
Corsair Force 100GB (SF-1200 MLC) Normal Data Random Data % of Max Perf
4KB Random Read 52.1 MB/s 42.8 MB/s 82.1%
2MB Sequential Read 265.2 MB/s 212.4 MB/s 80.1%
2MB Sequential Write 251.7 MB/s 144.4 MB/s 57.4%

Read performance is also impacted, just not that much. Performance drops to around 80% of peak, which does put the SandForce drives behind Intel and Crucial in sequential read speed. Random read speed drops to Indilinx levels. Read speed is impacted because if we write fully random data to the drive there's simply more to read back when we need it, making the process slower.

Sequential write speed actually takes the biggest hit of them all. At only 144.4MB/s if you're writing highly random data sequentially you'll find that the SF-1200/SF-1500 performs worse than just about any other SSD controller on the market. Only the X25-M is slower. While the impact to read performance and random write performance isn't terrible, sequential performance does take a significant hit on these SandForce drives.

Random Read/Write Speed Overall System Performance using PCMark Vantage
Comments Locked

60 Comments

View All Comments

  • ogc - Thursday, April 22, 2010 - link

    That file 512mb in size which compresses 1000x seems to simply full of zeros, so it represents best case performance for sandforce. On the other hand pure random writes are not expected in typical computer usage so they also are not very meaningful. Any chance to feed iometer with data from your storage bench for example?
  • arehaas - Thursday, April 22, 2010 - link

    I actually think random writes with compressed files are meaningful.
    JPEG files are highly compressed - you can gain only 1-3% by zipping them. Those who work with such files a lot - write to the disk or move around jpegs or similar compressed graphic and video files - should be paying most attention to these new tests for Sandforce. It may be a good idea to add the results for all (most) drives to the page with random writes chart as another chart "Random Writes - Compressed files".
  • arehaas - Thursday, April 22, 2010 - link

    Thanks to the new tests, it appears the charts of rnd or seq writes are currently misleading with respect to Sandforce, if most of your important files (e.g., for a graphic designer) are compressed. The charts are easier to read than text. Currently, one has to flip pages to and from the "Random Data performance page" in order to get the true picture. Maybe Anand can add a bar with "Corsair with compressed data" to the read/write charts? Thanks.
  • davepermen - Thursday, April 22, 2010 - link

    I guess that drive is not that well suited for video editing, where you have mostly random data (compressed and uncompressed, both look rather random to the drive). it wouldn't be bad in any way, just lose it's peak performance.
  • FragKrag - Thursday, April 22, 2010 - link

    Up until about a week or two ago I was set on an Intel X25-M G2 80GB, but now I'm not so sure anymore. If I got a Vertex 2/Agility 2, it would be a 50GB version... decisions decisions.

    Oh, and prompted by this article, I looked for the pricing of the Vertex Indilinx on Newegg, and I found this 50GB Vertex LE at $200
    http://www.newegg.com/Product/Product.aspx?Item=N8...

    never knew they had a 50GB run of Vertex LEs...
  • willscary - Thursday, April 22, 2010 - link

    After my problems last week, I ended up going back to the Crucial M225 series with the Indilinx controller. It is not quite as fast, but it does have a 5 year warranty. I paid $325 for the 128GB drives and a very low $579 for a 256GB drive from Newegg.

    I have been using these drives in several machines since the beginning of the year. They all support TRIM and I have had no problems. They are very fast in daily use. I had hoped the Sandforce drives would be faster, but I guess I will have to wait for a later date to find out (I will be purchasing another pair of computers in July after the new fiscal year begins...perhaps I will purchase the Sandforce SSDs at that time).
  • Look09 - Thursday, April 22, 2010 - link

    What happens when you use TrueCrypt to encrypt your OS.? Does it then random-write everything and indilinx is better? Does it make the Vertex 2 much better? Or no difference?
  • Ryan Smith - Thursday, April 22, 2010 - link

    Encrypted data should look like random noise, and as a result should have very little compressibility. I haven't used TrueCrypt, but it's my understanding that it writes garbage data to whatever part of the hidden partition isn't in use, so the whole thing should largely be uncompressible and match our random data performance.
  • semo - Thursday, April 22, 2010 - link

    I'm interested in encrypted testing also. These controllers are beginning to look like very fast consumer drives rather than enterprise (if the SATA interface wasn't a big enough hint already).

    I'm also wondering why are they getting a more substantial performance hit when writing compressed random 4k writes compared to 2MB sequential writes (74.4% vs 57.4%).

    Just to re instate, why are all these SSD makers coming out with SATA drives and calling them enterprise? AFAIK, Intel and Hitachi are working on an SAS SSD but I'm not aware of any other reasonable company doing the same (i'm totally ignoring what the military might have because costs there are nuts).
  • Mugur - Thursday, April 22, 2010 - link

    ... Too bad that the price is still high so I'm very interested for the low-end 40 GB ones, but with good random 4k writes. I have 5 machines at home waiting for this upgrade as the boot drive. :-)

    Allow me to thank you, Anand, for your dedication and work.

Log in

Don't have an account? Sign up now