集群架构
测试资源
资源项目 | 规格 |
发压机 | 32C64G云主机 |
KDRDS实例kingproxy节点1 | 32C64G |
KDRDS实例kingproxy节点2 | 32C64G |
KRDS1 | 48G内存2000G磁盘 |
KRDS2 | 48G内存2000G磁盘 |
KRDS3 | 48G内存2000G磁盘 |
KRDS4 | 48G内存2000G磁盘 |
KRDS5 | 48G内存2000G磁盘 |
KRDS6 | 48G内存2000G磁盘 |
数据模型
数据量: 3000W个数据表(30W个数据库,每个数据库100个表)
数据结构
SQL CREATE TABLE sbtest1 ( id int(10) unsigned NOT NULL, k int(10) unsigned NOT NULL DEFAULT '0', c char(120) NOT NULL DEFAULT '', pad char(60) NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY k_1 (`k`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; |
测试方法
1. 创建原始数据(3000W个数据表)
SQL for create database db1 ~ db30w; create table tb1 ~ t100; insert into tb1 values (1,1,'c','pad');
|
2. 使用sysbench 进行压测
单分片性能对比测试
数据模型
• 单分片上已经有5w个库500w个表
• 创建压测库,准备16个1000w行的表,对压测库中的这16个表进行压测
对比两种场景
• 场景一:通过KDRDS访问压测表
• 场景二:直连KRDS访问压测表
命令
Bash # 准备数据 sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=10000000 --tables=16 --threads={8~512} oltp_read_write prepare
# 运行workload # OLTP读写混合 sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=10000000 --rand-type=uniform --tables=16 --time=300 --threads={8~512} --report-interval=20 oltp_read_write run
# OLTP只读场景 sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=10000000 --rand-type=uniform --tables=10 --time=300 --threads={8~512} --report-interval=20 oltp_read_only run
# OLTP只写场景 sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=10000000 --rand-type=uniform --tables=10 --time=300 --threads={8~512} --report-interval=20 oltp_write_only run
# 清理数据 sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=10000000 --tables=16 --time=300 --threads={8~512} oltp_read_write/oltp_read_only/oltp_write_only cleanup |
多分片性能对比测试
对比两种场景
• 场景一:6个sysbench通过KDRDS访问分布在6个KRDS上的压测表
• 场景二:6个sysbench直连6个KRDS访问压测表
测试结果
单分片性能对比结果
混合读写
只读测试
只写测试
多分片性能对比结果
混合读写
只读测试
只写测试
多分片性能对比结果
混合读写
只读测试
只写测试