您当前位置:主页 > 热门文章 >
 
【MYSQL备库恢复速度测试 半同步速度测试】
日期:2018-09-20 编辑:admin

测试工具:sysbench

测试服务器:DL380 G7 2台  master-slave模式

内存大小:主机内存32G ,INNODB POOL SIZE 20G

硬盘:2块普通的HDD盘

CPU:12物理core

raid卡写cache开启

mysql版本:5.6.19

 

测试结论:

1)MYSQL半同步ag环亚复制可以一定程度解决多机数据一致性问题,性能要比异步复制低很多。同样的测试脚本,异步复制在TPS 10000的情况下,半同步复制只有3000。

2)MYSQL的备机恢复能力非常弱,这是由于它的复制只能单线程,而主库的交易却是多线程并发的。如果想解决这个问题,可以考虑分库,分库后可以利用多线程。

 

 

测试场景一:一主一备,半同步复制下每秒的事务数

 

半同步复制介绍:

传统的异步复制方式,主库把BINLOG日志发送给从库,并不会等待从库确认接受完毕,这意味着主服务器DOWN机后,从机可能存在没有主库已经提交的BINLOG日志。为了解决这个问题,MYSQL 5.5版本引入半同步复制模式,该模式可以确保从服务器接受完主服务器的BINLOG日志并写入到自己的RELAY LOG中,然后给主服务器一个反馈,告诉对方已经接受完毕。此模式一定程度上可以确保数据库切换后不丢失数据,但是影响性能。

 

涉及参数:

sync_binlog=1

innodb_flush_log_at_trx_commit=1

innodb_flush_method=O_DIRECT

rpl_semi_sync_master_enabled=1

rpl_semi_sync_master_timeout=1000 <****** > rpl_semi_sync_slave_enabled=1

 

一个事务包含:(一个insert 3个update 1个delete)

  <****** > 测试脚本:

sysbench --test=oltp --mysql-table-engine=innodb --oltp-table-size=10000000 --oltp-distinct-ranges=0 --mysql-db=test --mysql-user=root --mysql-password=123456 --oltp-order-ranges=0 --oltp-range-size=100 --oltp-point-selects=0 --oltp-simple-ranges=0 --oltp-sum-ranges=0 --oltp-test-mode=complex --max-requests=2000000 --num-threads=25 --max-time=40 run

 

测试结果:

异步复制情况下每秒10000以上的TPS

半同步复制情况下每秒接近3000的TPS,跟异步复制的复制效率差距还是很大的。

如果网络异常,半同步复制会降级为异步复制,待网络恢复后,自动升级为半同步模式。

如果采用双master架构,两台主机均可以配置为半同步模式。

 

 

测试场景二:备库的复制延迟

涉及参数:

slave_parallel_workers=4

 

测试结********** > 主库每秒37792的DML操作,备库每秒8745的复制速度。由于MYSQL的复制针对一个DB只能是单线程,因此复制速度非常慢。

如果主库每秒的DML操作次数超过8000左右就会产生复制延迟。如果备库本身还有提供外部业务查询的话,可能会进一步拖慢备库的复制速度。

如果系统分库的话,就可以使用并行复制,每多一个复制线程,可以提升70%左右的复制速度。

 

本文源自: AG环亚娱乐

上一篇:一个菜鸟在代码重构中的感想 下一篇:cygwin nutch安装实例
 
Copyright © 2005-2016 http://www.tecsquared.com AG环亚娱乐_AG直营网_环亚娱乐AG最佳线路_腾讯体育版权所有 AG环亚娱乐_AG直营网_环亚娱乐AG最佳线路_腾讯体育