Mysql性能指标(QPS、TPS)

测试工具

数据库基准性能测试为 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
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

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

测试环境

类型说明
实例物理机器高可用版-单机器最高可支撑488GB内存、6TB硬盘数据库
实例规格当前售卖主流配置规格(详见下文 测试用例
客户端配置4核8GB内存
客户端数量1 - 6个(若配置提升,客户端数量也需要相应提升)
网络环境万兆网络机房,网络延时 < 0.05ms
环境负载安装 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. 数据准备

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,表示每个测试表都是用随机数据来填充的。

4. 性能压测命令

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。

5. 场景模型

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

测试参数

实例规格存储空间表数量表行数数据集大小并发数执行时间(m)
1核1GB200GB42000万19GB12830
1核2GB200GB44000万38GB12830
2核4GB200GB84000万76GB12830
4核8GB200GB154000万142GB12830
4核16GB400GB254000万238GB12830
8核32GB700GB254000万238GB12830
16核64GB1TB404000万378GB25630
16核96GB1.5TB404000万378GB12830
16核128GB2TB404000万378GB12830
24核244GB3TB604000万567GB12830
48核488GB6TB604000万567GB12830
48核488GB(调优)6TB601000万140GB12830

测试结果

实例规格存储空间数据集客户端数单客户端并发数QPSTPS
1核1GB200GB19GB1128175797
1核2GB200GB38GB11283016167
2核4GB200GB76GB11284082816
4核8GB200GB142GB112865511310
4核16GB400GB238GB1128110982219
8核32GB700GB238GB2128204843768
16核64GB1TB378GB2128363957279
16核96GB1.5TB378GB31285646411292
16核128GB2TB378GB31288175216350
24核244GB3TB567GB41289852819705
48核488GB6TB567GB612814224628449
48核488GB(调优)6TB140GB612824550946304

文章转载地址:https://cloud.tencent.com/document/product/236/8842

  • 11
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值