sysbench 性能测试

测试工具

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

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

安装工具

本文测试使用的是 Sysbench 0.5 版本,安装方法如下:

git clone https://github.com/akopytov/sysbench
git checkout 0.5
yum -y install make automake libtool pkgconfig libaio-devel
yum -y install mariadb-devel
./autogen.sh
./configure
make -j
make install

或者直接yum安装
yum -y install make automake libtool pkgconfig libaio-devel
yum -y install mariadb-devel
yum -y install sysbench

以上是在CentOS 系统上的安装方法,如需安装到其他操作系统,请参见 Sysbench 官方文档

测试环境

类型

说明

实例物理机器

双节点-单机器最高可支撑488GB内存、6TB硬盘数据库

实例规格

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

客户端配置

4核8GB内存

客户端数量

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

网络环境

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

环境负载

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

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

测试方法

1. 数据准备

1)在mysql中创建库名=test的测试数据库,进入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万行。
  • --rand-init=on,表示每个测试表都是用随机数据来填充的。

2)生成的表结构

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=utf8mb4;

3)测试数据行格式

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

2. 性能压测命令

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万行。
  • --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。

3. 场景模型

本文用例均使用 sysbench 的 lua 脚本,修改为4个 select 点查询,1个 update (索引列),读写比为4:1。
针对最大配置类型,对数据场景增加了参数调优模型,测试结果见下文 测试结果

测试参数

实例规格

存储空间

表数量

表行数

数据集大小

并发数

执行时间(分钟)

1核1GB

200GB

4

2000万

19GB

128

30

1核2GB

200GB

4

4000万

38GB

128

30

2核4GB

200GB

8

4000万

76GB

128

30

4核8GB

200GB

15

4000万

142GB

128

30

4核16GB

400GB

25

4000万

238GB

128

30

8核32GB

700GB

25

4000万

238GB

128

30

16核64GB

1TB

40

4000万

378GB

128

30

16核96GB

1.5TB

40

4000万

378GB

128

30

16核128GB

2TB

40

4000万

378GB

128

30

24核244GB

3TB

60

4000万

567GB

128

30

48核488GB

6TB

60

4000万

567GB

128

30

48核488GB(调优)

6TB

60

1000万

140GB

128

30

测试结果

实例规格

存储空间

数据集

客户端数

单客户端并发数

QPS

TPS

1核1GB

200GB

19GB

1

128

1757

97

1核2GB

200GB

38GB

1

128

3016

167

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

1TB

378GB

2

128

36395

7279

16核96GB

1.5TB

378GB

3

128

56464

11292

16核128GB

2TB

378GB

3

128

81752

16350

24核244GB

3TB

567GB

4

128

98528

19705

48核488GB

6TB

567GB

6

128

142246

28449

48核488GB(调优)

6TB

140GB

6

128

245509

46304

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值