Buy Percona ServicesBuy Now!


 | April 25, 2012 |  Posted In: Benchmarks, Hardware and Storage, MySQL


Following my previous benchmark of Samsung 830, today I want to show results for STEC MACH16 SATA card, 200GB size, this card is based on SLC, and regarding STEC website, it is an enterprise grade storage.

For tests I use sysbench fileio, 16KiB block size (to match workload from InnoDB, as this is primary usage for me), and recently I switched to use async IO mode. There are two reasons for that. First, MySQL/InnoDB uses async writes, so this will emulate database load, and second, async mode allows to see maximal possible throughput, it does not show reliable latency though, as it appears there is no a reliable way in the Linux asynchronous IO library to get time metrics for particular IO block.

so my testing command line looks like:

You may see I gather metrics every 10 sec to see how stable the performance is, and it really helps to observe some artifacts, as you will see in following graphs.

Hardware for tests: HP ProLiant DL380 G6, filesystem: ext4, mounted with nobarrier.

The results for random write case (8 async IO threads):

In general it shows stable throughput topping to 148 MiB/sec, but every 20 min, there is small drop to 87 MiB/sec, which I guess is related to internal garbage collector activity.

The results for random read case:

Very stable throughput on line 222 MiB/sec

To understand better what kind of response time we should expect, I ran random read sync IO mode, now for 1-64 threads.

The throughput:

We are getting to the peak throughput at 8 threads.

And response time:

For 8 threads, we may expect 0.62ms response time.

In general I have very good experience with this card, and it seems suitable to work with MySQL. I will publish sysbench oltp benchmarks running MySQL on RAID10 over 4 STEC MACH16 cards.

If you are interested more in SSD and MySQL questions – I will be giving a webinary “MySQL and SSD” on May-9. It will be the same as my talk on Percona Live MySQL Conference 2012, if you did not attend my talk – you are welcome to join the webinar.

Disclaimer: This benchmark is done as part of consulting work for STEC, but this post is totally independent and fully reflects our opinion.

Vadim Tkachenko

Vadim Tkachenko co-founded Percona in 2006 and serves as its Chief Technology Officer. Vadim leads Percona Labs, which focuses on technology research and performance evaluations of Percona’s and third-party products. Percona Labs designs no-gimmick tests of hardware, filesystems, storage engines, and databases that surpass the standard performance and functionality scenario benchmarks. Vadim’s expertise in LAMP performance and multi-threaded programming help optimize MySQL and InnoDB internals to take full advantage of modern hardware. Oracle Corporation and its predecessors have incorporated Vadim’s source code patches into the mainstream MySQL and InnoDB products. He also co-authored the book High Performance MySQL: Optimization, Backups, and Replication 3rd Edition.


  • Vadim, can you please tell me, how long are the stalls observed in the write benchmark? I assume in the worst case, the stall could long for about 4 seconds (40% drop in throughtput, measured in 10 sec intervals).
    4 second stall would be quite nasty for any busy MySQL instance.
    BTW, the graph doesn’t show stall every 20 sec, maybe it’s just a typo? (every 20 sec, there is small drop).

    One more question – does this drive have any capacitors to survive power outage like Intel 320?

    Thank you, Vojtech

  • Vadim,

    Extending Vojtech question – I think current methodology does not provide enough details. The dips to 90MB from 150MB might be drive just actually going slower – 90MB/sec for these 10 seconds or it could stall for 4 seconds out of 10 completely and when perform with normal performance the rest of time. The fact drops are relatively even all the time makes it more likely it is second case as having slowdown for longer interval of time would make dips very different depending on overlap with measurement interval.

    I think it would be very interesting to plot the graph of 95% response time (which sysbench provides) for each of 10 second intervals too. This would show differently if it is just uniform slowdown – 95% should be just couple of times higher than normal or stall in which case 95% should be very high.

  • Vojtech,

    It is hard to say how long the stall is, I have only 10 sec granularity.
    it is a type on ’20 sec’ – it should be every ’20 min’.

    I do not know about capacitors – usually it is not mentioned in specification. I assume that ‘enterprise grade’ storage should come with power loss protection, but I also learnt that ‘assuming’ is bad practice. I will try to get an information from STEC.

  • OK, thank you Vadim!
    In my point of view, SLC SATA drives are usually much more expensive, so I would prefer MLC SATA for light workloads or PCI-Express drives for more write intensive load.
    By the way, Percona benchmarks seem to be the only freely available SSD benchmarks that are useful, I appreciate that!

  • Vadim. Got it thought I wonder if this is something which is possible to do or not.

    Also as you will be testing with real database workloads it should become possible to do that. My main point was to note even though throughput graphs are a lot better than average throughput measure over long time they still do not show the difference between slowdown and short stalls.

Comments are closed