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

  • berzerk101 - Thursday, April 22, 2010 - link


    Hi,

    A little question here I was wondering if those SandForce drive have some Garbage recycling in place like the Vertex with there last FW.

    If you look on youtube OWC state that there drive don't drop in performance on Mac but there's no TRIM support on Mac last time I checked.

    Because for now the only drive I found having some hardware auto-trim working on Mac is the Vertex with Indilinx controller.

    Video link:
    http://www.youtube.com/watch?v=52OpellvMLQ

    Thanks
  • Hacp - Thursday, April 22, 2010 - link

    Anand, you mention Intel/indilinx but not the realssd in your final review? It has the lowest cost per gb AND is one of the best performers. It scored very high on your real world benches.
  • GullLars - Thursday, April 22, 2010 - link

    No, not at all. I'm saying if SandForce had made the controller with a SATA 6Gbps interface instead of 3Gbps, it would have maxed the interface anyway for highly compressible data, both reading and writing.
    With RAW speeds of about 200-220MB/s read and 120-130MB/s write, data compressible to 1:2 could be read at 400-440MB/s and written at 240-260MB/s, and data compressible to 1:3 could be read at 600MB/s and written at 360-390MB/s...
    Anand says in his Agility 2 review that sandforce found installing windows 7 and MS office 2007 physically took up less than half of the original size, meaning those kinds of files would be written above 250MB/s and read above 450MB/s...
    The sandforce drives get PCmark scores around 38-40K, with a SATA 6Gbps interface i think they would get over 50K, maybe even over 60K. The limiting factor would be the read IOPS, wich tops out around 30-35K IOPS, and wouldn't get a boost by a faster interface since it seems to be controller computing power bound.
    Since it seems the 50GB versions are capable of the same both RAW and compressed speeds as 100GB and 200GB versions, a ROC + 2x SF-1200 in a 2,5" enclosure with SATA/SAS 6Gbps interface could be nice. Sort of like OCZ Apex, G.skill Titan, and OCZ Colossus, only made decently with full NCQ support and not tonnes of accesstime overhead. SF-1200 due to price, and (2x10K=) 20K IOPS sustained random write being "enough". Such a drive would give the same numbers as anvil has posted above, at possibly 1,3-1,5x the price, but on a single port, making it easy to scale to insane bandwidth on LSI 92xx for compressible data (over 4GB/s both read and write).
  • GullLars - Thursday, April 22, 2010 - link

    Like the subject says, that was meant as a reply on XS forum...

    Here is the post i meant to post:

    Anand
    As always, a great review, but i still miss 4KB random tests at higher queue depths to test out more than just 3 of the flash channels. A graph of 4KB random read with Queue Depth (2^n steps) on the x axis and IOPS/bandwidth on the y axis would also be nice, as it would show scaling by load.
    If you were to do this test, you would see that your statement that SandForce's 4KB random read performance on compressed data being worse than Indilinx is false for queue depths over 4, where indilinx tops out at ca 60MB/s = 15K IOPS, while sandforce reaches about 120MB/s. Seing as in that case SandForce has double the 4KB random read performance of Barefoot on uncompressible data, i suggest the statement should be retracted, or at least a note added to state it's not true for higher queue depths.
  • GullLars - Thursday, April 22, 2010 - link

    A little PS to the above:

    To back my statement with benchmark data:
    xtremesystems.org/forums/showpost.php?p=4352703&postcount=56
    AS SSD benchmark and CrystalDiskMark 3.0 use hardly compressible data, as shown by the sequential write speeds meassured.

    And for those interrested, the benchmark numbers i was reffering to that anvil posted "above" are these:
    xtremesystems.org/forums/showpost.php?p=4352876&postcount=57
    It's 2 Vertex LE 100GB in RAID-0 off ICH10R, IRST 9.6, WBC off.
  • vol7ron - Thursday, April 22, 2010 - link

    I just want to stress what the graphs show:

    The Agility's power consumption at idle or full load, is never more than 1W.

    That is amazing.

    vol7ron
  • Mr Perfect - Thursday, April 22, 2010 - link

    "SandForce also claims that its reduced write amplification could enable the use of cheaper NAND on these drives. It’s an option that some manufacturers may take however OCZ has committed to using the same quality of NAND as it has in the past. The Agility 2 uses 34nm IMFT NAND, presumably similar to what’s used in Intel’s X25-M G2."

    Sounds good. Hopefully other OEMs follow OCZs example.
  • Impulses - Thursday, April 22, 2010 - link

    Why are you using the street of the Corsair Nova on the Pricing Comparison chart at the end? Isn't that drive essentially the same thing as the OCZ Solid 2? You can get said drive for $70 less after MIR! (and the MIR always seems to be running) That dramatically impacts the cost per GB and it's value when compared to the other drives imo... Even the Agility is still $50 cheaper. The price of the 160GB X25-M seems to be off too, it might've spiked up during the days that the review was posted but it's been pretty easy to find at $450... ($40 less)

    Realistically the X25-M G2 drives and older Indillix drives end up being much cheaper per GB than the chart would seem to indicate, $2.50-2.75... So you pay quite a substantial premium for a C300 or a SF drive, 'specially if you opt for the 128GB C300 (which costs more per GB than the 256GB version, should include both on the chart for reference imo).

    I realize prices are always in shift, but these have actually been pretty stable over the past couple of months and I don't think they're likely to change (outside of specials and/or the occasional rebate) 'till end of year when they all start shifting to 20nm NAND flash... It's kind of amusing that the larger C300 breaks the mold and ends up being one of the better values (if you actually do need that much capacity and have the controller to take advantage of it's full performance); the X25-M and the older Indillix drives are probably still the best option for most people tho.
  • glugglug - Thursday, April 22, 2010 - link

    This is better than we are getting from a Fusion I/O. I know Fusion I/O claims 100K IOPS but I think they need to be 4KB sequential to achieve that.
  • GullLars - Thursday, April 22, 2010 - link

    Fusion-IO's IOdrive at 160GB SLC does 100K IOPS 4KB random write.
    ioXtreme, the 80GB MLC prosumer version on the other hand does around 30K i think.

Log in

Don't have an account? Sign up now