Intel SSD 910 vs HDD RAID in tpcc-mysql benchmark

I continue my benchmarks of Intel SSD 910, previous time I compared it with Fusion-io ioDrive http://www.mysqlperformanceblog.com/2012/09/07/intel-ssd-910-in-tpcc-mysql-benchmark/. Now I want to test this card against RAID over spinning disks.

  • Benchmark date: Sep-2012
  • Benchmark goal: Test Intel SSD 910 under tpcc-mysql workload and compare with HDD RAID10
  • Hardware specification
    • Server: Dell PowerEdge R710
    • CPU: 2x Intel(R) Xeon(R) CPU E5-2660 0 @ 2.20GHz
    • Memory: 192GB
    • Storage: Hardware RAID10 over 8 disks, card: Perc H710, disks: Seagate ST9750420AS 750GB, 2.5″, 7200RPM, 16MB, SATA. Intel SSD 910 (software RAID over 2x200GB devices)
    • Filesystem: ext4
  • Software
    • OS: Ubuntu 12.04.1
    • MySQL Version: Percona Server 5.5.27-28.1
  • Benchmark specification
    • Benchmark name: tpcc-mysql
    • Scale factor: 2500W (~250GB of data)
    • Benchmark length: 2h for SSD, 4h for HDD RAID, but the result is taken only for last 1h to remove warm-up phase
  • Parameters to vary: we vary innodb_buffer_pool_size:25, 50, 75GB to have different memory/data ration. And we test it on two storages: HDD RAID10 and Intel SSD 910
  • Results
    There is a jitter graph of Throughput taken every 10 sec:

    I put number of median throughput, so we can estimate a performance gain.

    Or in text form:

    BP size HDD RAID Intel SSD 910 Ratio (i910/raid)
    25 GB 228 1620 7.1
    50 GB 552 3182 5.76
    75 GB 1094 5729 5.24

    So gain is in 5-7x range, which is quite decent.

    One thing to pay attention is a density of results. In case with RAID it is much more dense.
    So I build a graph where throughput is shown every second:

    The variation of throughput with Intel SSD 910 is much bigger, though I am not totally sure what is the main contributor into that: the card of itself
    or MySQL internals + flushing logic.

    Now, all these results are received with innodb_flush_log_at_trx_commit=2, which in comments to previous post was called cheating.
    So I ran another round with innodb_flush_log_at_trx_commit=1 to see what kind of penalty to expect.

    There is some penalty of using innodb_flush_log_at_trx_commit=1, but it is not significant.

    Conclusion

    In conclusion I see that for its price (around $2000 on date of publishing) Intel SSD 910 handles MySQL workload quite well, I did not face any problem working with this card. I think Intel SSD 910 is suitable to use with MySQL / Percona Server, especially if you are looking for quick performance boost in IO heavy workload.

    4 thoughts on “Intel SSD 910 vs HDD RAID in tpcc-mysql benchmark

    1. Robert Mathews

      You wrote that changing innodb_flush_log_at_trx_commit from 2 to 1 didn’t make much difference in the performance of the SSD drive, which is interesting.

      Did it make a difference with the HDD RAID10?

      With spinning RAID-1 media, we notice a huge difference between those two settings (a factor of 10). I’d be interested to know if you see the same results on your spinning media. If you do, that suggests that using SSDs solves the same performance problems that “innodb_flush_log_at_trx_commit=2″ solves, without the drawback of lowering ACID guarantee levels.

      Reply
        1. Robert Mathews

          Agreed — I just found it interesting that (if I understood correctly) your testing suggests that a writeback cache is not needed for “innodb_flush_log_at_trx_commit=1″ performance when using SSDs, which is great. Moving to more standard, off-the-shelf commodity hardware (SATA SSDs) is much better than having to buy expensive proprietary battery-backed RAID cards.

          Reply

    Leave a Reply

    Your email address will not be published. Required fields are marked *

    You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>