Galera比独立设置慢3倍,持久设置,高CPU空闲



我正在评估galera群集,我无法解释自己的测试结果。

当比较单节点 Galerastandalone MariaDB 10.1.20时,我注意到耐用/不耐用设置可疑的性能差异很大:

  1. Galera的速度比standalone慢3倍,均具有耐用设置
  2. 耐用的Galeranon-durable Galera慢3倍

config:

[mysqld]
# durable
sync_binlog=1
innodb_flush_log_at_trx_commit=1
# non-durable
# sync_binlog=0
# innodb_flush_log_at_trx_commit=2
max_connections=2000
query_cache_type=0
query_cache_size=0
log_bin=1
binlog_format=ROW
log_slave_updates=1
innodb_flush_method=O_DIRECT
innodb_buffer_pool_size=4000M
innodb_buffer_pool_instances=4
innodb_log_buffer_size=64M
[galera]
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
innodb-autoinc-lock-mode=2
wsrep_cluster_name=galera
wsrep_node_address=node1
wsrep_node_name=node1
wsrep_cluster_address=gcomm://
wsrep_sst_method=rsync
wsrep_slave_threads=8

基准:sysbench 0.5

sysbench 
--test=/usr/share/doc/sysbench/tests/db/oltp.lua 
--mysql-host=localhost 
--mysql-user=root 
--oltp-table-size=1000000 
--num-threads=128 
--max-requests=0 
--max-time=60 run

结果:

galera,耐用

read/write requests: 4994.74 per sec.

独立,耐用

read/write requests: 16858.99 per sec.

galera,不耐用

read/write requests: 15938.04 per sec.

独立的,不持续的

read/write requests: 17055.88 per sec.

服务器详细信息:

2 Cores
8 GB RAM
CentOS 7
SSD

我已经多次重复测试,甚至重新启动数据目录和galera。

一些观察:

  • CPU idle(是的,空闲)>耐用的galera,< 1%在其他测试中方案
  • iowait>耐用的Galera的20%,在其他测试中1%方案

innodb_flush_log_at_trx_commit=1大大减慢了innodb(ymmv)。这与Galera无关。=1在每个COMMIT,明确或隐式上都会产生额外的写入。即使面对突然的电源故障,它也是它达到耐用性的方式。

=1不是Galera的必要条件 - 如果节点崩溃,请重建。

不要相信您的应用程序如何运行的基准。

其他问题 - 您是否有负载平衡器在各个节点之间共享写作?几个节点?袭击?SSD?节点之间的延迟?

,更重要的是,您是否会接近16K写入/秒?如果不是,那么基准几乎没有任何线索,即您的您的应用程序将运行。

最新更新