Database Performance: MySQL 5.7.0 

Thanks to the excellent repository of Percona, we were able to vastly improve our MySQL benchmarking with Sysbench. You cannot compare these results to the results published prior to the Cavium Thunder-X review: we made quite a few changes in the way we benchmark. We first upgraded the standard MySQL installation to the better performing Percona Server 5.7.

Secondly, we used Sysbench 0.5 (instead of 0.4) and we implemented the (lua) scripts that allow us to use multiple tables (8 in our case) instead of the default one. This makes the Sysbench benchmark much more realistic as running with one table creates a very artificial bottleneck.

For our testing we used the read-only OLTP benchmark, which is slightly less realistic, but still much more interesting than most other Sysbench tests. This allows us to measure CPU performance without creating an I/O bottleneck.

Sysbench on 8 tables

It is important to note that IBM has invested a lot of time in Postgres and MariaDB optimization. So our choice for MySQL is definitely not the most favorable. However, this is database we know best, and it will take some time before we fully master Postgres benchmarking. We already started with MariaDB testing, but the results were very similar. The reason is that we are probably missing some key optimizations.

Still, the IBM POWER8 does very well here, outperforming our simulated Xeon E5-2680 v4 by a small margin and thus keeping up with more expensive Xeons. Next we measure the 95th percentile response time, a response time which is statistically relevant for the users.

MySQL Sysbench RO (8 tables)

You do pay a price for the fact that 8 threads are running on one core. SMT-8 optimizes throughput at the cost of the response time of individual threads. Response times are quite a bit higher on the POWER8 than they are on the Intel Xeons.

Update: the response times are quite a bit better with SMT-4, but at the cost of a 26% lower throughput than SMT-8.

Only POWER specific optimization that makes better use of SMT-8 can remedy this.

Java Performance Spark Benchmarking
Comments Locked

49 Comments

View All Comments

  • loa - Monday, September 19, 2016 - link

    This article neglects one important aspect to costs:
    per-core licensed software.
    Those licenses can easily be north of 10 000$ . PER CORE. For some special purpose software the license cost can be over 100 000 $ / core. Yes, per core. It sounds ridiculous, but it's true.
    So if your 10-core IBM system has the same performance as a 14-core Intel system, and your license cost is 10 000$ / core, well, then you just saved yourself 40 000 $ by using the IBM processor.
    Even with lower license fee / core, the cost advantage can be significant, easily outweighing the additional electricity bill over the lifetime of the server.
  • aryonoco - Tuesday, September 20, 2016 - link

    Thanks Johan for another very interesting article.

    As I have said before, there is literally nothing on the web that compares with your work. You are one of a kind!

    Looking forward to POWER 9. Should be very interesting.
  • HellStew - Tuesday, September 20, 2016 - link

    Good article as usually. Thanks Johan.
    I'd still love to see some VM benchmarks!
  • cdimauro - Wednesday, September 21, 2016 - link

    I don't know how much value could have the performed tests, because they don't reflect what happens in the real world. In the real world you don't use an old o.s. version and an old compiler for an x86/x64 platform, only because the POWER platform has problems with the newer ones. And a company which spends so much money in setting up its systems, can also spend just a fraction and buy an Intel compiler to squeeze out the maximum performance.
    IMO you should perform the tests with the best environment(s) which is available for a specific platform.
  • JohanAnandtech - Sunday, September 25, 2016 - link

    I missed your reaction, but we discussed this is in the first part. Using Intel's compiler is good practice in HPC, but it is not common at all in the rest of the server market. And I do not see what an Intel compiler can do when you install mysql or run java based applications. Nobody is running recompiled databases or most other server software.
  • cdimauro - Sunday, October 2, 2016 - link

    Then why you haven't used the latest available distro (and compiler) for x86? It's the one which people usually use when installing a brand new system.
  • nils_ - Monday, September 26, 2016 - link

    This seems rather disappointing, and with regards to optmized Postgres and MariaDB, I think in that case one should also build these software packages optimized for Xeon Broadwell.
  • jesperfrimann - Thursday, September 29, 2016 - link

    @nils_
    Optimized for.. simply means that the software has been officially ported to POWER, and yes that would normally include that the specific accelerators that are inside the POWER architecture now are actually used by the software, and this usually means changing the code a bit.
    So .. to put it in other words .. just like it is with Intel x86 Xeons.

    // Jesper
  • alpha754293 - Monday, October 3, 2016 - link

    I look forward to your HPC benchmarks if/when they become available.

Log in

Don't have an account? Sign up now