1、双主一从测试环境搭建

主机名

ip

角色

cpu/内存

master1

172.16.84.150

2c/4G

master2

172.16.84.151

2c/4G

slave

172.16.84.152

2c/4G

双主一从结构按照文档https://blog.csdn.net/du18020126395/article/details/115288524安装(文档是mysql企业版的,换成percona版本即可)

rpm -ivh Percona-Server-shared-compat-57-5.7.31-34.1.el7.x86_64.rpm

rpm -ivh Percona-Server-shared-57-5.7.31-34.1.el7.x86_64.rpm

rpm -ivh Percona-Server-client-57-5.7.31-34.1.el7.x86_64.rpm

rpm -ivh Percona-Server-server-57-5.7.31-34.1.el7.x86_64.rpm

rpm -ivh Percona-Server-rocksdb-57-5.7.31-34.1.el7.x86_64.rpm

rpm -ivh jemalloc-3.6.0-1.el7.x86_64.rpm

rpm -ivh Percona-Server-tokudb-57-5.7.31-34.1.el7.x86_64.rpm

配置双主时,双主分别配置:

change master to master_host='master2',master_port=3306,master_user='rpl_user',master_password='123',MASTER_AUTO_POSITION=1;

change master to master_host='master1',master_port=3306,master_user='rpl_user',master_password='123',MASTER_AUTO_POSITION=1;

从节点配置:

change master to master_host='master2',master_port=3306,master_user='rpl_user',master_password='123',MASTER_AUTO_POSITION=1;

start slave即可

2、启动rocksdb和tokudb引擎(三节点均操作)

安装rocksdb和tokudb引擎

ps-admin --enable-rocksdb -uroot -p123

ps-admin --enable-tokudb -u root -p123

安装tokudb结束后需要重启mysql实例,并在此执行:

ps-admin --enable-tokudb -u root -p123

3、sysbench安装

rpm -ivh ck-0.5.2-2.el7.x86_64.rpm

rpm -ivh luajit-2.0.4-3.el7.x86_64.rpm

rpm -ivh postgresql-libs-9.2.24-1.el7_5.x86_64.rpm

rpm -ivh sysbench-1.0.17-2.el7.x86_64.rpm

sysbench --version

4、造数据

建10个100万和5个1000万的rocksdb、tokudb和innodb作为存储引擎的表

create database sbrocksdb; ---存储10张100万的rocksdb引擎的表

create database sbtokudb;  ---存储10张100万的tokudb引擎的表

create database sbinnodb;    ---存储10张100万的innodb引擎的表

create database sbrocksdb0; ---存储5张1000万的rocksdb引擎的表

create database sbtokudb0;  ---存储5张1000万的tokudb引擎的表

create database sbinnodb0;    ---存储5张1000万的innodb引擎的表

/usr/share/sysbench/oltp_common.lua中找到CREATE DATABASE 将storage部分分别改为ENGINE=TokuDB、ROCKSDB和INNODB

ROCKSDB:

sysbench --mysql-host=localhost --mysql-port=3306 --mysql-user=sysbench --mysql-password=123 /usr/share/sysbench/oltp_common.lua --tables=10 --table_size=1000000 --mysql-db=sbrocksdb prepare

sysbench --mysql-host=localhost --mysql-port=3306 --mysql-user=sysbench --mysql-password=123 /usr/share/sysbench/oltp_common.lua --tables=5 --table_size=10000000 --mysql-db=sbrocksdb0 prepare

TokuDB:

sysbench --mysql-host=localhost --mysql-port=3306 --mysql-user=sysbench --mysql-password=123 /usr/share/sysbench/oltp_common.lua --tables=10 --table_size=1000000 --mysql-db=sbtokudb prepare

sysbench --mysql-host=localhost --mysql-port=3306 --mysql-user=sysbench --mysql-password=123 /usr/share/sysbench/oltp_common.lua --tables=5 --table_size=10000000 --mysql-db=sbtokudb0 prepare

INNODB:

sysbench --mysql-host=localhost --mysql-port=3306 --mysql-user=sysbench --mysql-password=123 /usr/share/sysbench/oltp_common.lua --tables=10 --table_size=1000000 --mysql-db=sbinnodb prepare

sysbench --mysql-host=localhost --mysql-port=3306 --mysql-user=sysbench --mysql-password=123 /usr/share/sysbench/oltp_common.lua --tables=5 --table_size=10000000 --mysql-db=sbinnodb0 prepare

5、Innodb参数优化

innodb_buffer_pool_instances=8

innodb_write_io_threads=4

innodb_read_io_threads=4

innodb_buffer_pool_size=2G

6、Rocksdb参数优化

rocksdb_max_open_files=-1

rocksdb_max_background_jobs=8

rocksdb_max_total_wal_size=4G

rocksdb_block_size=16384

rocksdb_block_cache_size=2G

rocksdb_table_cache_numshardbits=6

rocksdb_bytes_per_sync=16777216

rocksdb_wal_bytes_per_sync=4194304

rocksdb_compaction_sequential_deletes_count_sd=1

rocksdb_compaction_sequential_deletes=199999

rocksdb_compaction_sequential_deletes_window=200000

rocksdb_default_cf_options="write_buffer_size=256m;target_file_size_base=32m;max_bytes_for_level_base=512m;max_write_buffer_number=4;level0_file_num_compaction_trigger=4;level0_slowdown_writes_trigger=20;level0_stop_writes_trigger=30;max_write_buffer_number=4;block_based_table_factory={cache_index_and_filter_blocks=1;filter_policy=bloomfilter:10:false;whole_key_filtering=0};level_compaction_dynamic_level_bytes=true;optimize_filters_for_hits=true;memtable_prefix_bloom_size_ratio=0.05;prefix_extractor=capped:12;compaction_pri=kMinOverlappingRatio;compression=kLZ4Compression;bottommost_compression=kLZ4Compression;compression_opts=-14:4:0"

rocksdb_max_subcompactions=4

rocksdb_compaction_readahead_size=16m

rocksdb_use_direct_reads=ON

rocksdb_use_direct_io_for_flush_and_compaction=ON

7、Tokudb参数优化

tokudb_row_format=tokudb_fast

tokudb_directio=on

tokudb_cache_size=2G

8、读写压测

(1)100万行表压测

100万行的rocksdb引擎跑100s和200s读写:

sysbench --threads=4 --time=100 --report-interval=10 --mysql-db=sbrocksdb --mysql-host=localhost --mysql-port=3306 --mysql-user=sysbench --mysql-password=123 /usr/share/sysbench/oltp_read_write.lua --tables=10 --table_size=1000000 run

sysbench --threads=4 --time=200 --report-interval=10 --mysql-db=sbrocksdb --mysql-host=localhost --mysql-port=3306 --mysql-user=sysbench --mysql-password=123 /usr/share/sysbench/oltp_read_write.lua --tables=10 --table_size=1000000 run

100万行的tokudb引擎跑100s和200s读写:

sysbench --threads=4 --time=100 --report-interval=10 --mysql-db=sbtokudb --mysql-host=localhost --mysql-port=3306 --mysql-user=sysbench --mysql-password=123 /usr/share/sysbench/oltp_read_write.lua --tables=10 --table_size=1000000 run

sysbench --threads=4 --time=200 --report-interval=10 --mysql-db=sbtokudb --mysql-host=localhost --mysql-port=3306 --mysql-user=sysbench --mysql-password=123 /usr/share/sysbench/oltp_read_write.lua --tables=10 --table_size=1000000 run

100万行的innodb引擎跑100s和200s读写:

sysbench --threads=4 --time=100 --report-interval=10 --mysql-db=sbinnodb --mysql-host=localhost --mysql-port=3306 --mysql-user=sysbench --mysql-password=123 /usr/share/sysbench/oltp_read_write.lua --tables=10 --table_size=1000000 run

sysbench --threads=4 --time=200 --report-interval=10 --mysql-db=sbinnodb --mysql-host=localhost --mysql-port=3306 --mysql-user=sysbench --mysql-password=123 /usr/share/sysbench/oltp_read_write.lua --tables=10 --table_size=1000000 run

条件

engine

tps

qps

时间(s)

表行数

平均tps

平均qps

复制开启,读写测试

ROCKSDB

192.97

3859.34

100

1000,000

177.225 3544.44

复制开启,读写测试

ROCKSDB

161.48

3229.54

200

1000,000

复制开启,读写测试

TokuDB

189.84

3796.82

100

1000,000 160.88 3217.63

复制开启,读写测试

TokuDB

131.92

2638.44

200

1000,000

复制开启,读写测试

INNODB

167.81

3356.13

100

1000,000 180.245 3604.84

复制开启,读写测试

INNODB

192.68

3853.54

200

1000,000

(2)1000万行表压测

1000万行的rocksdb引擎跑100s和200s读写:

sysbench --threads=4 --time=100 --report-interval=10 --mysql-db=sbrocksdb0 --mysql-host=localhost --mysql-port=3306 --mysql-user=sysbench --mysql-password=123 /usr/share/sysbench/oltp_read_write.lua --tables=5 --table_size=10000000 run

sysbench --threads=4 --time=200 --report-interval=10 --mysql-db=sbrocksdb0 --mysql-host=localhost --mysql-port=3306 --mysql-user=sysbench --mysql-password=123 /usr/share/sysbench/oltp_read_write.lua --tables=5 --table_size=10000000 run

1000万行的tokudb引擎跑100s和200s读写:

sysbench --threads=4 --time=100 --report-interval=10 --mysql-db=sbtokudb0 --mysql-host=localhost --mysql-port=3306 --mysql-user=sysbench --mysql-password=123 /usr/share/sysbench/oltp_read_write.lua --tables=5 --table_size=10000000 run

sysbench --threads=4 --time=200 --report-interval=10 --mysql-db=sbtokudb0 --mysql-host=localhost --mysql-port=3306 --mysql-user=sysbench --mysql-password=123 /usr/share/sysbench/oltp_read_write.lua --tables=5 --table_size=10000000 run

1000万行的innodb引擎跑100s和200s读写:

sysbench --threads=4 --time=100 --report-interval=10 --mysql-db=sbinnodb0 --mysql-host=localhost --mysql-port=3306 --mysql-user=sysbench --mysql-password=123 /usr/share/sysbench/oltp_read_write.lua --tables=5 --table_size=10000000 run

sysbench --threads=4 --time=200 --report-interval=10 --mysql-db=sbinnodb0 --mysql-host=localhost --mysql-port=3306 --mysql-user=sysbench --mysql-password=123 /usr/share/sysbench/oltp_read_write.lua --tables=5 --table_size=10000000 run

条件

engine

tps

qps

时间(s)

表行数

平均tps

平均qps

复制开启,读写测试

ROCKSDB

172.47

3449.35

100

10,000,000

173.21 3464.18

复制开启,读写测试

ROCKSDB

173.95

3479.00

200

10,000,000

复制开启,读写测试

TokuDB

150.17

3003.34

100

10,000,000 144.61 2892.17

复制开启,读写测试

TokuDB

139.05

2780.99

200

10,000,000

复制开启,读写测试

INNODB

131.86

2637.12

100

10,000,000 161.715 3234.23

复制开启,读写测试

INNODB

191.57

3831.34

200

10,000,000

9、写压测(相当于load data)

(1)100万行表压测

100万行的rocksdb引擎跑100s和200s写:

sysbench --threads=4 --time=100 --report-interval=10 --mysql-db=sbrocksdb --mysql-host=localhost --mysql-port=3306 --mysql-user=sysbench --mysql-password=123 /usr/share/sysbench/oltp_insert.lua --tables=10 --table_size=1100000 run

sysbench --threads=4 --time=200 --report-interval=10 --mysql-db=sbrocksdb --mysql-host=localhost --mysql-port=3306 --mysql-user=sysbench --mysql-password=123 /usr/share/sysbench/oltp_insert.lua --tables=10 --table_size=1100000 run

100万行的tokudb引擎跑100s和200s写:

sysbench --threads=4 --time=100 --report-interval=10 --mysql-db=sbtokudb --mysql-host=localhost --mysql-port=3306 --mysql-user=sysbench --mysql-password=123 /usr/share/sysbench/oltp_insert.lua --tables=10 --table_size=1100000 run

sysbench --threads=4 --time=200 --report-interval=10 --mysql-db=sbtokudb --mysql-host=localhost --mysql-port=3306 --mysql-user=sysbench --mysql-password=123 /usr/share/sysbench/oltp_insert.lua --tables=10 --table_size=1100000 run

100万行的innodb引擎跑100s和200s写:

sysbench --threads=4 --time=100 --report-interval=10 --mysql-db=sbinnodb --mysql-host=localhost --mysql-port=3306 --mysql-user=sysbench --mysql-password=123 /usr/share/sysbench/oltp_insert.lua --tables=10 --table_size=1100000 run

sysbench --threads=4 --time=200 --report-interval=10 --mysql-db=sbinnodb --mysql-host=localhost --mysql-port=3306 --mysql-user=sysbench --mysql-password=123 /usr/share/sysbench/oltp_insert.lua --tables=10 --table_size=1100000 run

条件

engine

tps

qps

时间(s)

表行数

平均tps

平均qps

复制开启,写测试

ROCKSDB

903.51

903.51

100

1000,000

818.46 818.46

复制开启,写测试

ROCKSDB

733.41

733.41

200

1000,000

复制开启,写测试

TokuDB

467.27

467.27

100

1000,000 631.935 631.935

复制开启,写测试

TokuDB

796.60

796.60

200

1000,000

复制开启,写测试

INNODB

597.11

597.11

100

1000,000 702.285 702.285

复制开启,写测试

INNODB

807.46

807.46

200

1000,000

(2)1000万行表压测

1000万行的rocksdb引擎跑100s和200s写:

sysbench --threads=4 --time=100 --report-interval=10 --mysql-db=sbrocksdb0 --mysql-host=localhost --mysql-port=3306 --mysql-user=sysbench --mysql-password=123 /usr/share/sysbench/oltp_insert.lua --tables=5 --table_size=11000000 run

sysbench --threads=4 --time=200 --report-interval=10 --mysql-db=sbrocksdb0 --mysql-host=localhost --mysql-port=3306 --mysql-user=sysbench --mysql-password=123 /usr/share/sysbench/oltp_insert.lua --tables=5 --table_size=11000000 run

1000万行的tokudb引擎跑100s和200s写:

sysbench --threads=4 --time=100 --report-interval=10 --mysql-db=sbtokudb0 --mysql-host=localhost --mysql-port=3306 --mysql-user=sysbench --mysql-password=123 /usr/share/sysbench/oltp_insert.lua --tables=5 --table_size=11000000 run

sysbench --threads=4 --time=200 --report-interval=10 --mysql-db=sbtokudb0 --mysql-host=localhost --mysql-port=3306 --mysql-user=sysbench --mysql-password=123 /usr/share/sysbench/oltp_insert.lua --tables=5 --table_size=11000000 run

1000万行的innodb引擎跑100s和200s写:

sysbench --threads=4 --time=100 --report-interval=10 --mysql-db=sbinnodb0 --mysql-host=localhost --mysql-port=3306 --mysql-user=sysbench --mysql-password=123 /usr/share/sysbench/oltp_insert.lua --tables=5 --table_size=11000000 run

sysbench --threads=4 --time=200 --report-interval=10 --mysql-db=sbinnodb0 --mysql-host=localhost --mysql-port=3306 --mysql-user=sysbench --mysql-password=123 /usr/share/sysbench/oltp_insert.lua --tables=5 --table_size=11000000 run

条件

engine

tps

qps

时间(s)

表行数

平均tps

平均qps

复制开启,写测试

ROCKSDB

431.12

431.12

100

10,000,000

499.935 499.935

复制开启,写测试

ROCKSDB

568.75

568.75

200

10,000,000

复制开启,写测试

TokuDB

436.43

436.43

100

10,000,000

553.575 553.575

复制开启,写测试

TokuDB

670.72

670.72

200

10,000,000

复制开启,写测试

INNODB

813.51

813.51

100

10,000,000

722.71 722.71

复制开启,写测试

INNODB

631.91

631.91

200

10,000,000

10、总结

条件

engine

平均tps

平均qps

复制开启,读写测试

ROCKSDB

175.2175

3504.31

复制开启,读写测试

TokuDB

152.745

3054.9

复制开启,读写测试

INNODB

170.98

3419.535

条件

engine

平均tps

平均qps

复制开启,写测试

ROCKSDB

659.1975 659.1975

复制开启,写测试

TokuDB

592.755

592.755

复制开启,写测试

INNODB

712.4975

712.4975

读写测试可以看出3个存储引擎,rocksdb平均tps和qps较高

写测试看出3个存储引擎,innodb平均tps和qps较高

rocksdb、tokudb、innodb引擎性能测试相关推荐

  1. mysql引擎测试_MySQL MyISAM引擎和InnoDB引擎的性能测试

    以下的文章主要介绍的是MySQL MyISAM引擎和InnoDB引擎的性能测试,MyISAM引擎和InnoDB引擎在实际操作中是经常运用到的,以下的文章就是对MySQL MyISAM引擎和InnoDB ...

  2. tokuDB存储引擎的安装、配置、使用及注意事项

    原文:http://blog.csdn.net/lidan3959/article/details/35985569 平台支持: TokuDB 只能在 64-bit Linux 下使用. 最小内存要求 ...

  3. 阿里云mysql数据库引擎_在阿里云RDS数据库服务器中将MySQL InnoDB引擎表转为压缩格式...

    今年以来将我们以前托管或者租用的服务器全面转向阿里云,除了采用ECS服务器以外,还有一项重要的是采用了RDS数据库服务器,这对于服务的稳定性.各项指标的监控.调优等都有帮助. 不过随着近期更多数据库转 ...

  4. 将MySQL去重操作优化到极致之三弹连发(三):用rocksdb替代innodb

    前面已经建立了索引,优化了SQL语句,并将单线程变为多线程并行执行,去重时间由最初的35秒优化为3.5秒,是不是就到此为止呢?吴老师又使用了rocksdb存储引擎替代innodb的方法.这里有必要交代 ...

  5. [杂记] 新年物语关于Mysql引擎性能测试

    顺便看到一个Mysql的测试文章,感觉还满有参考价值的,于是记录下来以便参考. 以下是一个MySQL中MyISAM引擎与InnoDB引擎性能简单性能测试: [硬件配置] CPU : AMD2500+ ...

  6. mysql 5.6 innodb_MYSQL 5.6中禁用INNODB引擎

    并不是所有人都需要INNODB引擎,虽然它弥补了MYSQL缺乏事务支持的毛病,但是它的磁盘性能一直是让人比较担忧的. 另外比较老的PHP系统,大多是采用MYISAM引擎在MYSQL建表,似乎INNOD ...

  7. Linux环境编译安装Mysql以及补装innodb引擎方法

    mysql安装  5.6以后可能会收费,所以选择5.1 以下从台湾中山大学镜像下载 1.首先要安装C++编译环境 # yum install gcc-c++ 2.下载解压 # wget http:// ...

  8. 工作中InnoDB引擎数据库主从复制同步心得

    近期将公司的MySQL架构升级了,由原先的一主多从换成了DRBD+Heartbeat双主多从,正好手上有一个电子商务网站新项目也要上线了,用的是DRBD+Heartbeat双主一从,由于此过程还是有别 ...

  9. mysql innodb引擎丢失_【MySQL】InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据...

    注意!此方法只适用于innodb_file_per_table独立表空间的InnoDB实例. 此种方法可以恢复ibdata文件被误删.被恶意修改,没有从库和备份数据的情况下的数据恢复,不能保证数据库所 ...

最新文章

  1. 【组合数学】递推方程 ( 无重根递推方程求解实例 | 无重根下递推方程求解完整过程 )
  2. centos安装mysql5.7.19_Linux下Centos7安装Mysql5.7.19的详细教程
  3. vue通过监听实现相同路径的视图重新加载
  4. 厉害了,教你用 Spring Boot 控制并发登录人数
  5. 【图文解释】快速排序算法
  6. win7 管理iphone日历_大师给你传授win7系统安装桌面日历的途径
  7. devexpress实现单元格根据条件显示不同的样式(颜色、字体、对齐方式,大小等)...
  8. 如何实现BootStrapTable的动态表格
  9. Redis只能做缓存?太out了!
  10. sigmoid激活函数
  11. java电子贺卡_基于JAVA WEB的电子贺卡,请帖制作系统
  12. java发送lrc文件格式_lrc歌词文件格式
  13. Win11文件资源管理器有明显卡顿,微软承诺在2022年提高性能
  14. 用OpenCV实现简单的泊松融合
  15. 企业微信自动打卡脚本
  16. 建模方法(十)-灰色预测模型GM(1,1)
  17. vnc 字体设置_VPS开启VNC服务,并解决中文乱码的方法——ubuntu系统
  18. Linux -- vim编辑器使用教程
  19. 好用的python打包软件_Python打包exe文件方法汇总【4种】
  20. sql定义表时,int(10)是什么意思?

热门文章

  1. 极简的欧洲史-读书笔记
  2. 总说未雨绸缪,一觉醒来窗外已是漫天飞雪
  3. 艾宾浩斯遗忘曲线PHP,【干货】~~~艾宾浩斯遗忘曲线~~~
  4. CRM准确数据分析,把控客户需求
  5. prometheus监控windows系统
  6. 科技系列 - 1 :判断键盘上的某个键按下 :KEY_DOWN
  7. Keil5出现Error: Flash Download failed - Could not load file ‘ces \ces.axf‘的解决方法
  8. 什么蓝牙耳机玩游戏超低延迟?玩游戏超低延迟的蓝牙耳机推荐
  9. python读取图片路径_Python小列子-读取照片位置
  10. 2044:【例5.12】回文字串