Firstly, can you confirm that each node VM was running on a dedicated HW
host? Or were they sharing CPU and IO of a single machine?
Secondly, replication in PXC is synchronous. This adds some overhead.
Running nodes inside VMs seriously increases that overhead. Now if your
workload is relatively lightweight (and 2M rows is relatively
lightweight by todays standards), then the resulting replication
overhead can seriously degrade performance (but hardly that much)
Thirdly, correct cluster configuration can make it or break it. Number
of slave threads, flow control limits, etc.
Finally, correct benchmark configuration is equally important. Say, if
that load does not max out a single node, you can't expect any
scalability with 3, only degradation due to additional overheads. For
example you may want to try to increase the number of concurrent clients
to 24 and likely you will see different results (although this alone is
unlikely to show any scalability)
On 2015-03-18 17:51, Ruben O wrote:
> Hi
>
> I posted some days ago about some issue with the deploy of Xtradb.
> Finally
> I was able to deploy it with Vagrant+Virtual Box+Ansible and do the
> benchmark. To run the benchmark I installed into another host sysbench
> suite.
>
> I have to say that for balance the queries I setup before another
> ubuntu
> with haproxy.
>
> So then I run 2 test. One test, the first, with 3 nodes in
> Xtradbcluster
> and the test were prepared with this parameters:
>
> *sysbench \*
> *--db-driver=mysql \*
> *--mysql-table-engine=innodb \*
> *--oltp-table-size=2000000 \*
> *--mysql-host=192.168.33.100 \*
> *--mysql-port=3306 \*
> *--mysql-user=root \*
> *--mysql-password=xxxxx \*
> *--test=/usr/share/sysbench/tests/db/oltp.lua \*
> *prepare*
>
> then I ran the script with "run"
>
> *sysbench \*
> *--db-driver=mysql \*
> *--num-threads=8 \*
> *--max-requests=50000 \*
> *--oltp-table-size=2000000 \*
> *--oltp-test-mode=complex \*
> *--test=/usr/share/sysbench/tests/db/oltp.lua \*
> *--report-interval=1 \*
> *--mysql-table-engine=innodb \*
> *--mysql-host=192.168.33.100 \*
> *--mysql-port=3306 \*
> *--mysql-user=root \*
> *--mysql-password=\*
> *run*