近日花了点时间对几个分支版本进行对比测试,包括了:MySQL 5.6.17、Percona5.6.16、MariaDB 10.0.11、OneSQL 5.6.16。
1、测试基准 |
测试工具: tpcc-mysql |
测试Warehouse数: 10/100 |
warmup time: 120s |
run time: 1800s |
并发线程数: 64 ~ 1920 |
2、测试环境: |
OS:RHEL 6.4 |
内核:2.6.32-358.el6.x86_64 |
磁盘:INTEL SSDSC2BA800G3 |
3、MySQL配置: |
innodb_buffer_pool_size = 26G |
sync_binlog = 0 |
innodb_flush_log_at_trx_commit = 1/3 #OneSQL设置为3,其他设置为1 |
tcc_max_transaction_concurrency = 64 #OneSQL设置 |
tpcc-mysql测试脚本可以参见我以前的一个分享:分享:服务器基准测试 或者 MySQL压力测试经验(放在slideshare上,需要翻)
下面是测试结果:
针对上面测试结果的说明:
结论: |
1、在256并发以内的情况下,看起来MariaDB拥有绝对优势,应该和它的thread pool有很大关系; |
2、OneSQL在100DW模式下,并发1792的拐点应该是个意外(其他测试循环中未出现该拐点),原因不明,可以忽略; |
3、tpcc测试模式下,数据量越小、并发越高,则TpmC越低,因为竞争太厉害了,这方面OneSQL表现绝对优异,并发量变化很大对TpmC的影响很小; |
建议: |
1、是时候改成MariaDB了,因为它集成了XtraDB,已经超越Percona了; |
2、如果没有特别的理由,可以不用官方版本了; |
3、如果对楼方鑫的分支感兴趣并且可以放心上线的话,强烈推荐使用; |
This post has already been read 11567 times!
楼方鑫的分支好是好,,但一点说明文档都没有,基本的安装都不给,这太……..
他直接提供了mysqld二进制文件,其他使用方法和正常无异,特殊的配置参数可以show global variables like ‘tcc_%’ 相关的几个,基本上可以用默认参数。你的建议我也会向他反馈的 :)
Percona 5.6 也带有threadpool,而且是基于Mariadb的代码,并且经过改良,更适合在高并发事务的场景。Mariadb用的是基于Percona的xtradb引擎,但是从测试结果来看,两者的性能相差太大了吧,这不科学。
虽说,Mariadb用的是自己的query optimizer,Percona用的是mysql的query optimizer,但我不认为这会对测试结果产生很大的影响
二者的并发锁管理实现方式也大不一样,所以性能相差不小,thread pool只是一小部分。
可以看下我最近发的关于瓶颈分析的那篇:MySQL 5.6.17/Percona5.6.16/MariaDB 10.0.11/OneSQL 5.6.16压测瓶颈分析
onesql 分支的下载地址有吗?我在网上怎么找不到呢?
在百度网盘:http://pan.baidu.com/s/1mgJpukg