强同步性能对比数据

最近更新时间: 2024-10-17 17:10:00

本文提供 MySQL/MariaDB 与开源 MySQL(未经优化)的性能对比,用于做对比参考。

对比测试环境

  • 硬件:CPU 24core ,内存128GB,磁盘1.8TB SSD
  • 网络环境:局域网,平均网络延迟0.80ms
  • 操作系统:CentOS 7.0
  • 数据量:10张表,每张表2180000行,每张表数据量约5.2GB,innodb buffer:30GB
  • 开源版本:MySQL 5.6 社区版(未经优化,开启异步同步
  • MySQL/MariaDB 分片版本: MariaDB 10.1.10(内核优化,开启强同步),默认开启线程池

对比测试结果

综合来看,经过优化的 MySQL/MariaDB 的强同步性能略优于 MySQL 的异步性能。

对比测试详细数据

测试操作

1. 数据初始化参数

create database caccts ;
./sysbench --num-threads=500 --test=./tests/db/oltp.lua.bak --oltp-table-size=2180000 --oltp-tables-count=10 --oltp-point-selects=1 --oltp-simple-ranges=0 --oltp-sum-ranges=0 --oltp-order-ranges=0 --oltp-index-updates=1 --oltp-non-index-updates=0 --report-interval=1 --mysql-user=xxxxxx --mysql-password=xxxxxx --mysql-host=xxxxxx --mysql-db=caccts --max-time=360000 --max-requests=2000000000 prepare

2. 非索引更新(update)

./sysbench --num-threads=500 --test=./tests/db/update\_non\_index.lua --oltp-table-size=2180000 --oltp-tables-count=10 --percentile=99 --report-interval=1 --mysql-host=xxxx --mysql-user=xxx --mysql-password=xxx --mysql-db=caccts --max-time=360000 --max-requests=2000000000 --mysql-port=3306 run

3. 只读(select)

./sysbench --num-threads=500 --test=./tests/db/select.lua --oltp-table-size=2180000 --oltp-tables-count=10 --percentile=99 --report-interval=1 --mysql-host=xxxx --mysql-user=xxx --mysql-password=xxx --mysql-db=caccts --max-time=360000 -- max-requests=2000000000 --mysql-port=3306 run

4. 混合测试

./sysbench\_orig --num-threads=500 --test=./tests/db/oltp\_new.lua --oltp-read-only=off --oltp-table-size=2180000 --oltp-tables-count=10 --oltp-point-selects=1 --oltp-simple-ranges=0 --oltp-sum-ranges=0 --oltp-order-ranges=0 --oltp-distinct-ranges=0 --oltp-index-updates=1 --oltp-non-index-updates=0 --percentile=99 --report-interval=1 --mysql-host=xxxx -- mysql-user=xxx --mysql-password=xxx --mysql-db=caccts --max-time=360000 --max-requests=2000000000 --mysql-port=3306 run

对比测试结果

1. 读请求(read)

并发 版本 qps 平均响应时间(ms) 99%响应时间(ms)
50 开源 MySQL 306512 0.16 0.26
50 MySQL/MariaDB 310695 0.15 0.24
100 开源 MySQL 417443 0.24 0.48
100 MySQL/MariaDB 454640 0.2 0.72
200 开源 MySQL 423419 0.57 1
200 MySQL/MariaDB 488224 0.56 1.22
500 开源 MySQL 438512 1.16 2.42
500 MySQL/MariaDB 490678 1.21 2.61
1000 开源 MySQL 412723 2.3 6.3
1000 MySQL/MariaDB 481342 2.1 4.21

2. 写请求(update)

并发 版本 qps 平均响应时间(ms) 99%响应时间(ms)
50 开源 MySQL 24816 2.37 2.82
50 MySQL/MariaDB 28925 2.33 2.55
100 开源 MySQL 43046 2.25 3.91
100 MySQL/MariaDB 43466 2.3 4
200 开源 MySQL 54690 3.92 7.86
200 MySQL/MariaDB 54045 3.7 7.27
500 开源 MySQL 70192 7.44 14.1
500 MySQL/MariaDB 70370 7.25 15.52
1000 开源 MySQL 68447 15.2 29.47
1000 MySQL/MariaDB 69890 14.35 30.73

3. 混合场景(OLTP 测试)

并发 版本 qps 平均响应时间(ms) 99%响应时间(ms)
50 开源 MySQL 154806 2.7 4.13
50 MySQL/MariaDB 162883 1.84 3.45
100 开源 MySQL 162696 3.85 7.4
100 MySQL/MariaDB 173974 3.58 6.64
200 开源 MySQL 204550 5.64 12.92
200 MySQL/MariaDB 208128 5.76 11.9
500 开源 MySQL 235386 13.93 28.58
500 MySQL/MariaDB 232543 13.58 27.23
1000 开源 MySQL 201765 28.29 60.72
1000 MySQL/MariaDB 226130 27.76 54.38