租用了华为云MySQL数据库服务,怎样实测TPS、QPS性能指标?
客户经常会问我们华为云的RDS for MySQL的性能指标,其中最关注的指标是TPS和QPS两个指标:
TPS:Transaction Per Second,数据库每秒执行的事务数。
QPS:Query Per Second,数据库每秒执行的SQL数,包含insert、select、update、delete等。
我们可以在阿里云、华为云官网上会列出MySQL各规格的性能指标,比如下面是华为云官网列出的Mysql5.7的各规格性能参数:
性能测试工具有很多,阿里云采用了Sysbench工具进行测试,为了保持一致的测试基准,本次测试我们也采用该工具测试华为云MySQL服务。
Sysbench是一款基于LuaJIT的,模块化多线程基准测试工具,常用于数据库基准测试。通过内置的数据库测试模型,采用多线程并发操作来评估数据库的性能。
了解Sysbench更多详情,请访问https://github.com/akopytov/sysbench。
本次测试使用的Sysbench版本为1.0.12。
一、测试环境准备
1、开通云主机
节点:上海二
规格:通用计算增强型 | c3.2xlarge.2 | 8vCPUs | 16GB
带宽: 5 Mbit/s 弹性公网IP
操作系统:CentOS7.4 64位
注:为保证后面测试顺利, 建议测试环境选定CentOS7.4 64位版本。
2、开通MySQL数据库服务
节点:上海二
类型:单机
引擎:MySQL 5.7
规格:8 核 | 32 GB
存储:超高IO 500GB
注:
#主机与MySQL建议选用同一个VPC、子网和安全组。
#存储选用超高IO,容量选用不小于500G,后续需要装载的数据量比加大。
3、安装Sysbench
SSH登录开通的云主机,具体的安装命令如下:
# wget -c https://github.com/akopytov/sysbench/archive/1.0.12.zip
# yum install autoconf libtool mysql mysql-devel vim unzip
# unzip 1.0.12.zip
# cd sysbench-1.0.12
# ./autogen.sh
# ./configure
# make
# make install
按顺序执行以上命令即可完成安装。
二、准备测试数据
1、创建测试数据库loadtest
# mysql -u root -P 3306 -h <MySQL内网IP地址> -p<root用户密码> -e "create database loadtest"
2、装载测试数据
sysbench --test=/usr/local/share/sysbench/tests/include/oltp_legacy/oltp.lua --db-driver=mysql --mysql-db=loadtest --mysql-user=root --mysql-password=<root用户密码> --mysql-port=3306 --mysql-host=<MySQL内网IP地址> --oltp-tables-count=64 --oltp-table-size=10000000 --num-threads=20 prepare
主要参数说明:
oltp.lua:执行装载测试数据的lua脚本;
--oltp-tables-count=64:创建64个测试表;
--oltp-table-size=10000000:每个表1000万条测试数据
prepare:执行装载测试数据的命令
执行后如下图所示:
注意:因为装载的数据量比较大,需要较长时间才能完成测试数据的装载,我们在用SSH时,很容易因各种原因断开SSH连接,导致数据导入中断,建议使用screen工具实现命令在后台自动运行,详见我之前发布的公众号文章:https://mp.weixin.qq.com/s/mpaD54srYaVbT52vOfX0Gg
三、执行性能测试
sysbench --test=/usr/local/share/sysbench/tests/include/oltp_legacy/oltp.lua --db-driver=mysql --mysql-db=loadtest --mysql-user=root --mysql-password=<root用户密码> --mysql-port=3306 --mysql-host=<MySQL内网IP地址> --oltp-tables-count=64 --oltp-table-size=10000000 --max-time=3600 --max-requests=0 --num-threads=200 --report-interval=3 --forced-shutdown=1 run
关键参数说明:
--oltp.lua:执行性能测试lua脚本;
--max-time=3600:最大执行时间,单位秒
--max-requests=0 :请求的最大数目,0表示不限制
--num-threads=200:创建测试线程的数目
--report-interval=3 :隔多久屏幕打印一次统计信息
--forced-shutdown=1:在强制关闭前等待时间,单位秒
-- run:执行性能测试
四、测试结果说明
测试结果截图如下:
红色框里是我们重点关注的TPS和QPS性能指标:
transactions:事务总数及tps,本例中是1953.89
queries:查询总数及qps,本例中是39078.32
Latency-95th percentile:前95%的请求的最大响应时间,本例中是325.98毫秒
结论:与华为云官网的数据要略底一点(<5%),基本一致。
- 点赞
- 收藏
- 关注作者
评论(0)