Evaluating Percona XtraDB Cluster 8.0 in I/O Bound Workload

Percona XtraDB Cluster 8.0 is in the final stretch before GA release and we have pre-release packages available for testing, and I wanted to see how Percona XtraDB Cluster 8.0 performs in CPU and IO-bound scenarios, like in my previous posts about MySQL Group Replication.

In this blog, I want to evaluate Percona XtraDB Cluster 8.0 scaling capabilities in I/O bound cases when we increase the number of nodes and increase user connections. The version I used is available here: Percona-XtraDB-Cluster-8.0.18.

For this testing, I deploy multi-node bare metal servers, where each node and client are dedicated to an individual server and connected between themselves by a 10Gb network.

multi node bare metal servers

Hardware specifications:

For the benchmark, I use sysbench-tpcc 1000W prepared database as:

The configs, scripts, and raw results are available on our GitHub.  The workload is “I/O-bound”, that is data (about 100GB) does not fit into innodb_buffer_pool (25GB) and there are intensive read/write IO operations.

Results

Let’s review the results I’ve got. First, let’s take a look at how the performance changes when we increase user threads from 1 to 256 for 3 nodes.

increase user threads from 1 to 256 for 3 nodes

Percona XtraDB Cluster 3 Nodes – Individual Scales

To see the density of the results in more detail, let’s draw the chart with the individual scales for each set of threads:

Percona XtraDB Cluster 3 Nodes - Individual Scales

Percona XtraDB Cluster 3 Nodes, Timeline for 64 Threads

Percona XtraDB Cluster 3 Nodes, Timeline for 64 Threads

3 Nodes vs. 5 Nodes

Now let’s look at the performance under 5 nodes (compared to 3 nodes):

3 Nodes vs. 5 Nodes

Percona XtraDB Cluster 3 Nodes, Timeline for 64 Threads

3 nodes vs 5 nodes:

Percona XtraDB Cluster 3 Nodes, Timeline for 64 Threads

Percona XtraDB Cluster vs Group Replication

Now as we have both results for Percona XtraDB Cluster and Group Replication, we can compare how they perform under identical workloads. In this case, we compare 3 nodes setup:

Percona XtraDB Cluster vs Group Replication

We can see that Percona XtraDB Cluster consistently shows better average throughput, with much less variance, compared to Group Replication.

Coefficient of Variation

Let’s calculate a coefficient of variation for both Percona XtraDB Cluster and Group Replication, for 3 nodes and 5 nodes setups.

I want to use a coefficient of variation instead of standard deviation because standard deviation operates in absolute values and it is hard to compare the standard deviation between 1 and 128 threads. A coefficient of variation shows a variation in percentage (standard deviation relative to average value) – the smaller value will correspond to less variance, and less variance is better.

Coefficient of Variation

Share this post

Comment (1)

  • Brad Reply

    Can you do a comparison between PXC 5.7 and PXC 8?

    April 18, 2020 at 8:13 am

Leave a Reply