固定链接 使用Sysbench对滴滴云MySQL进行基准测试

使用Sysbench对滴滴云MySQL进行基准测试

使用Sysbench对滴滴云MySQL进行基准测试

Sysbench是一款开源的多线程、跨平台的基准测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试。本文使用Sysbench针对滴滴云的MySQL进行基准测试。

本文使用的MySQL数据库为一台4G内存,50G存储容量的滴滴云MySQL数据库,由于滴滴云MySQL默认不能通过公网访问,此数据库通过一台滴滴云虚拟机(DC2)连接,滴滴云MySQL的使用可以参考以下链接,此处不再赘述。

https://help.didiyun.com/hc/kb/article/1143410/
其中关键的一步是为了云主机可以正常访问MySQL,需要创建用户,此处为方便测试,建议创建高权限账号。
img
常用的基准测试指标包括

TPS/QPS:衡量吞吐量。

响应时间:包括平均响应时间、最小响应时间、最大响应时间、时间百分比等,其中时间百分比参考意义较大,如前95%的请求的最大响应时间。

并发量:同时处理的查询请求的数量。

1.在云主机上安装MySQL5.7客户端:

2. 在云主机上安装sysbench

不同版本的sysbench语法有一定差别,本文使用的版本是sysbench1.0。

下载解压:

安装依赖:

安装,确认当前目录为sysbench目录。

默认sysbench命令在这个路径下,/usr/local/bin/sysbench,如果未添加/usr/local/bin为环境变量,为方便使用,可以为sysbench命令添加软链。

验证命令可用性:

3. Sysbench命令用法

使用sysbench –help查看sysbench的命令用法,此处只介绍本文用到的一些命令选项和参数。

本例中用到的[options]参数如下:
–mysql-host:MySQL服务器主机名,默认localhost;如果在本机上使用localhost报错,提示无法连接MySQL服务器,改成本机的IP地址应该就可以了。
–mysql-port:MySQL服务器端口,默认3306
–mysql-user:用户名
–mysql-password:MySQL服务器密码
–oltp-test-mode:执行模式,包括simple、nontrx和complex,默认是complex。simple模式下只测试简单的查询;nontrx不仅测试查询,还测试插入更新等,但是不使用事务;complex模式下测试最全面,会测试增删改查,而且会使用事务,本例使用complex。
–oltp-tables-count:测试的表数量,本例选择10张表。
–oltp-table-size:测试的表的大小,本例选择100000条数据。
–threads:客户端的并发连接数,本例选用10。
–time:测试执行的时间,单位是秒,本例选择120秒。
–report-interval:生成报告的时间间隔,单位是秒,本例选择10秒。

[testname]指定用什么lua脚本进行测试,可以是自己编写的,也可以用sysbench自带的,自带脚本位于解压后的sysbench目录中tests/include/oltp_legacy下,本例使用oltp.lua脚本,可以模拟并发、建表、插入数据、删除数据等常规OLTP操作。
[command]选项包括prepare、run和cleanup,即数据准备、测试执行和测试后数据清理。

4. 测试举例

首先在滴滴云页面创建sbtest数据库。

img

(1)准备数据

(2)执行测试
可以将执行结果保存在文件中便于后续分析。

(3)清理数据

##解读测试结果##
打开所保存的测试结果。

这里一般我们关注这两个指标。

我们可以看到QPS为7271.87,95%请求的最大延迟为40.37毫秒,
对于当前配置的mysql来说,测试结果比较理想。

作者:贺子一
现在注册滴滴云,得8888元立减红包
7月特惠,1C2G1M云服务器 9.9元/月限时抢
滴滴云使者专属特惠,云服务器低至68元/年
输入大师码【7886】,GPU全线产品9折优惠

您的留言将激励我们越做越好