腾讯云MySQL实例高IO版性能测试报告

数据库基准性能测试为 sysbench 0.5。

工具修改说明:

对 sysbench 自带的 otlp 脚本做了修改,读写比例修改为 1:1,并通过执行测试命令参数 oltp_point_selects 和 oltp_index_updates 来控制读写比例,本文测试用例的均采用 4 个 select 点,1 个 update 点,读写比例保持 4:1。

测试环境

类型

说明

实例物理机器

高 IO 版-单机器最高可支撑 488 GB 内存 6 T 硬盘数据库

实例规格

当前售卖主流配置规格(详见下文测试用例)

客户端配置

4 核 8 GB 内存

客户端数量

1~6 个(配置的提升,客户端数量也需要相应提升)

网络环境

万兆网络机房,网络延时 < 0.05 ms

环境负载

安装 mysql 机器负载 > 70% (针对非独占实例)

  • 客户端规格说明:机器采用了较高配置的客户机器,保证单客户端可以压测出数据库实例的性能,如果客户端配置规格较小,建议采用多个客户并行压测实例来求取数据总和。
  • 网络延时说明:测试环境保证客户端机器与数据库实例在同一可用区,测试结果不受网络环境影响。

测试方法

1. 测试库表结构

CREATE TABLE `sbtest1` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `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=utf8;

2. 测试数据行格式

id: 1 k: 20106885 c: 08566691963-88624912351-16662227201-46648573979-64646226163-77505759394-75470094713-41097360717-15161106334-50535565977 pad: 63188288836-92351140030-06390587585-66802097351-4928296184

3. 数据准备

/root//sysbench/sysbench --mysql-host=xxxx --mysql-port=xxxx --mysql-user=xxx --mysql-password=xxx --mysql-db=test --mysql-table-engine=innodb --test=tests/db/oltp.lua --oltp_tables_count=20 --oltp-table-size=10000000 --rand-init=on prepare

数据准备参数说明:

  • --test=tests/db/oltp.lua,表示调用 tests/db/oltp.lua 脚本进行 oltp 模式测试。
  • --oltp_tables_count=20,表示用于测试的表数量为 20 张。
  • --oltp-table-size=10000000,表示每个测试表填充数据行数为 1000 W 行。
  • --rand-init=on,表示每个测试表都是用随机数据来填充的。

4. 性能压测命令

/root//sysbench/sysbench --mysql-host=xxxx --mysql-port=xxx --mysql-user=xxx --mysql-password=xxx --mysql-db=test --test=/root/sysbench_for_z3/sysbench/tests/db/oltp.lua --oltp_tables_count=xx --oltp-table-size=xxxx --num-threads=xxx --oltp-read-only=off --rand-type=special --max-time=600 --max-requests=0 --percentile=99 --oltp-point-selects=4 run

性能压测参数说明:

  • --test=/root/sysbench_for_z3/sysbench/tests/db/oltp.lua,表示调用 /root/sysbench_for_z3/sysbench/tests/db/oltp.lua 脚本进行 oltp 模式测试。。
  • --oltp_tables_count=20,表示本次用于测试的表数量为 20 张。
  • --oltp-table-size=10000000,表示本次测试使用的表行数均为 1000 W 行。
  • --num-threads=128,表示本次测试的客户端连接并发数为 128。
  • --oltp-read-only=off ,off 表示测试关闭只读测试模型,采用读写混合模型。
  • --rand-type=special,表示随机模型为特定的。
  • --max-time=1800,表示本次测试的执行时间。
  • --max-requests=0,0 表示不限制总请求数,而是按 max-time 来测试。
  • --percentile=99,表示设定采样比例,默认是 95%,即丢弃 1% 的长请求,在剩余的 99% 里取最大值。
  • --oltp-point-selects=4,表示 oltp 脚本中 sql 测试命令,select 操作次数为 4,默认值为 1。

5. 场景模型

本文用例均使用场景脚本 our_oltp.lua,修改为 4 个 select 点查询,1 个 update (索引列),读写比为 4:1。

针对最大配置类型,对数据场景增加了参数调优模型,测试结果见下文 测试结果

测试参数

实例规格

存储空间

表数量

表行数

数据集大小

并发数

执行时间(m)

2核 4GB

200GB

8

4000W

76GB

128

30

4核 8GB

200GB

15

4000W

142GB

128

30

4核 16GB

400GB

25

4000W

238GB

128

30

8核 32GB

700GB

25

4000W

238GB

128

30

16核 64GB

1T

40

4000W

378GB

256

30

16核 96GB

1.5T

40

4000W

378GB

128

30

16核 128GB

2T

40

4000W

378GB

128

30

24核 244GB

3T

60

4000W

567GB

128

30

48核 488GB

6T

60

4000W

567GB

128

30

48核 488GB(调优)

6 T

60

1000W

140 GB

128

30

测试结果

实例规格

存储空间

数据集

客户端数

单客户端并发数

QPS

TPS

2核 4GB

200GB

76GB

1

128

4082

816

4核 8GB

200GB

142GB

1

128

6551

1310

4核 16GB

400GB

238GB

1

128

11098

2219

8核 32GB

700GB

238GB

2

128

20484

3768

16核 64GB

1T

378GB

2

128

36395

7279

16核 96GB

1.5T

378GB

3

128

56464

11292

16核 128GB

2T

378GB

3

128

81752

16350

24核 244GB

3T

567GB

4

128

98528

19705

48核 488GB

6T

567GB

6

128

142246

28449

48核 488GB(调优)

6T

140GB

6

128

245509

46304

猜你喜欢

转载自blog.csdn.net/mchdba/article/details/86751658