October 31, 2014

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.percona.com/blog/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 sizeHDD RAIDIntel SSD 910Ratio (i910/raid)
    25 GB22816207.1
    50 GB55231825.76
    75 GB109457295.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.

    About Vadim Tkachenko

    Vadim leads Percona's development group, which produces Percona Clould Tools, the Percona Server, Percona XraDB Cluster and Percona XtraBackup. He is an expert in solid-state storage, and has helped many hardware and software providers succeed in the MySQL market.

    Comments

    1. Hi Vadim

      Actually, it’s not quite true that density of results is different. You are looking at variance as an absolute number, but it would make more sense to consider the relative (or normalized) variance.

      Let’s take as an example the case with buffer pool = 50 GB, because the numbers happen to be easiest there. With the SSD, rate is mostly between 400 – 200 tps. So if we take the best case performance as baseline, we could say that there are up to 50% drops. (200 per 400 is 50%). Now, with the RAID the best performance is 100 tps and the lower bound seems to be (let’s say…) around 25 tps. So here the drops are up to 75% from the best case.

      So I would say the SSD is actually better.

      To illustrate relative variance, you would be better off drawing the y-axis with a log-10 scale.

    2. Would be interesting to see what performance you get with Amazon’s new hi1.4xlarge instance.

      This is basically a 8 core, 8 hyperthread 35ECU (roughly equivalent to 2xQuad Core Intel Xeon 5570 2.93Ghz 8MB Cache) with 60GB RAM, 10GbE, 2x1TB local SSD volumes (not sure the exact physical drives behind this though).

      Rough cost on a 3 year contract (reserved instance) for this solution is around $700/month with on a TCO basis isn’t bad when you consider all the other features of EC2.

    3. nate says:

      Would be nice to see latency information, also cpu usage w/ IO wait. Also would be nice to see the read/write ratio in the test too.

      With an average improvement of 6x over 8 SATA disks (probably more like 2.5-3x 8x 15k disks), the numbers are surprisingly low to me, given the grand claims that Intel makes on the card

      I didn’t see the 200GB version, but on Newegg at least the 400GB version claims up to 38,000 write IOPS.

      Assuming the system was totally I/O constrained in the test, 3x faster than 8 15k rpm disks would be in the range of ~4300 IOPS, almost 10% of the write IOPS claim (though I guess their safe because they say “up to”, I hate that term!)

      It’s crazy to see such grand claims on SSDs, I mean the recent race to see who can claim 1 million read iops on a 100% read configuration is just sad. There’s been a couple real world benchmark results of all-SSD platforms that claim to provide 1 million iops, one fell short by 400k IOPS, the other fell short by 600k IOPS.

      hopefully some day things will stabilize and there will be some standard as to comparing different SSDs so you can really get your expectations set as to what to expect, without having to run extensive testing on the different solutions yourself.

    4. jametong says:

      to nate :

      not 8 * 15000 rpm Disk, But 8 * 7200rpm Disk.

    5. nate says:

      yes its 6x faster than 8x7200RPM disks 15k rpm is 2x faster (at least) than 7200rpm, so it’s 3x faster than 8x15k rpm

    6. Denis says:

      Why RAID results with trx_commit=1 more faster then with trx_commit=2 ? trx_commit=1 is the slowest param for ACID compliance, isn’t it ?

    Speak Your Mind

    *