最新消息:

MySQL 5.6 vs MariaDB 5.5 vs Percona(5.5 & 5.6) 之TPCC性能测试

未分类 admin 3265浏览 0评论

一、简述
是由原来 MySQL 的作者 Michael Widenius 创办的公司所开发的免费开源的数据库服务器。MariaDB基于事务的Maria存储引擎,替换了MySQL的MyISAM存储引擎,它使用了Percona的 XtraDB,InnoDB的变体。这个版本还包括了 PrimeBase XT (PBXT) 和 FederatedX 存储引擎。(摘自:http://baike.baidu.com/view/2521908.htm)
简单的说:MariaDB是MySQL的一个变种,可以作为官方MySQL版本的一个替代品,并且在一些特性上做了增强。
MariaDB的官网见:http://mariadb.org

二、测试环境
2.1 详细测试环境见下图:

2.2 自动化测试脚本例子见下:

#!/bin/sh
#export LD_LIBRARY_PATH=/usr/local/mysql/lib/

. ~/.bash_profile >/dev/null 2>&1

BASEDIR="/home/tpcc-mysql"
cd $BASEDIR
mkdir -p $BASEDIR/logs

exec 3>&1 4>&2 1>> tpcc.log 2>&1

#执行tpcc测试的数据库IP
DBIP=localhost
DBUSER='root'
DBPASS=''
#测试模式:1000个仓库
WIREHOUSE=1000
DBNAME="tpcc${WIREHOUSE}"
#数据预热时间:120秒
WARMUP=120
#执行测试时长:1小时
DURING=3600
#测试模式
MODE="percona55_innodb_buf26G_1bp_1000dw_xfs_deadline_6disk_raid10"

#初始化测试环境
if [ -z "`mysqlshow -h$DBIP -u$DBUSER -p$DBPASS|grep -v grep|grep "$DBNAME"`" ] ; then
 mysqladmin -h$DBIP -u$DBUSER -p$DBPASS -f create $DBNAME
 mysql -h$DBIP -u$DBUSER -p$DBPASS -f $DBNAME < ./create_table.sql
 time ./tpcc_load $DBIP $DBNAME $DBUSER $DBPASS $WIREHOUSE
fi

CYCLE=0
TOTAL=3
NOW=`date +'%Y%m%d%H%M'`
while [ $CYCLE -lt $TOTAL ]
do
#测试并发线程:8 ~ 256
for THREADS in 8 16 32 64 128 256
do

#重启mysqld
/etc/init.d/mysql stop; echo 3 > /proc/sys/vm/drop_caches; /etc/init.d/mysql start; sleep 60

#开始执行tpcc测试
./tpcc_start -h $DBIP -d $DBNAME -u $DBUSER -p "${DBPASS}" -w $WIREHOUSE -c $THREADS -r $WARMUP -l $DURING -f ./logs/tpcc_${MODE}_${NOW}_${THREADS}_THREADS_${CYCLE}.res >> ./logs/tpcc_runlog_${MODE}_${NOW}_${THREADS}_THREADS_${CYCLE} 2>&1
done

CYCLE=`expr $CYCLE + 1`
done

三、测试结果
备注:

独享是指:使用独立表空间模式;
1bp/8bp 分别指:设置innodb buffer pool instance为1或者8。

3.1 TPCC数据初始化对比

3.2 TpmC结果对比

本次对比测试中,在模式 “percona 5.6.6-m9-56(独享,1 bp)”(黄色底) 下的综合TpmC效率最高。因此也直接以它为基准,对比了其他几种测试模式的TpmC效率。

四、小结
本次只做了TpmC简单对比基准测试,MySQL 5.6以及MariaDB所宣称的各种改进以及特性暂未关涉及。
从测试结果来看,Percona 5.6的性能仍然有较大优势;另外,和以前版本对比,在一定线程数之内,并发线程数越多,TpmC效率也越高。

2.3 重点配置选项差异对比

#binlog
log-bin = binlog
binlog_format = mixed
gtid_mode = ON
disable-gtid-unsafe-statements = 1
binlog_cache_size = 4M
max_binlog_size = 1G
max_binlog_cache_size = 2G
sync_binlog = 1
expire_logs_days = 1

#relay log
max_relay_log_size = 1G
relay_log_purge = 1
relay_log_recovery = 1
master_verify_checksum = 1
master_info_repository = 'TABLE'
slave_sql_verify_checksum = 1
slave_allow_batching = 1
log_slave_updates

MySQL 5.6宣称支持多线程并发复制,事实上是针对每个database开启相应的独立线程,如果线上业务中,只有一个database或者绝大多数压力集中在个别database的话,多线程并发复制特性就没有意义了。

转载请注明:爱开源 » MySQL 5.6 vs MariaDB 5.5 vs Percona(5.5 & 5.6) 之TPCC性能测试

您必须 登录 才能发表评论!