MySQL 之 Sysbench 简单基准测试

基准测试

基准测试的简单定义就是对于某个系统的一种硬件性能测试,它没有模拟真实的业务场景,使用工具包自己生成的数据对系统进行一个测试,它更care系统的硬件能力,例如,测试数据库实际的读写性能等。而对真实逻辑较少关注。

觉得我讲的简单定义不专业的话,这里维基百科是这样介绍的:

 

 

Sysbench 

Sysbench可以用于测量数据库的性能和测试数据库所在服务器的性能,它是MySQL诸多工具中,最有用的工具之一,相比Mysqlslap可以对硬件性能进行测试,非常多人使用的一个工具。

Sysbench 测试类别

* 线程测试

* CPU测试

* 内存测试

* 磁盘测试

* 数据库测试

 

Sysbench 安装(Ubuntu)

sudo apt-get install sysbench

安装完毕

安装1.0版本的方法:

Ubuntu:

curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.deb.sh | sudo bash
sudo apt -y install sysbench

CentOS:

curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash
sudo yum -y install sysbench

安装完毕查看版本:

1.0版本安装完毕

 

Sysbench使用格式:

sysbench script [options]  [command]

--options   各种参数

--command   命令

 

 

options:

--mysql-host                 IP地址

--mysql-port                  端口号

--mysql-user                 用户名

--mysql-password         密码

--threads                       并发连接数

--oltp-tables-count        测试表数量

--oltp-table-size             测试表记录    默认10000

–oltp-user-delay-min     每个请求最短等待时间。单位是ms。默认0 

–oltp-user-delay-max    每个请求最长等待时间。单位是ms。默认0 

–oltp-table-name           测试时使用到的表名。默认是sbtest 

--time                             测试执行多少秒

--report-interval             报告间隔

--oltp-test-model           执行模式:simple只测试查询  nontrx测试无事务的增删查改 complex有事务的增删改查

–oltp-dist-type              分布的随机数:uniform(均匀分布),Gaussian(高斯分布),special(空间分布)。默认是special 

–oltp-dist-iter                 产生数的迭代次数。默认12 

 

 

command:

--prepare                          生成测试数据

--run                                 执行测试

--cleanup                          清除测试数据

 

Sysbench针对MySQL基准测试简单Demo使用三个指标:

TPS:事务执行数 / Per Second

QPS:请求执行完毕数(queries)/ Per Second

响应时间:处理请求平均时间

 

生成测试数据:

先建立一个Sysbench用的库叫做sbtest

sysbench /usr/share/sysbench/tests/include/oltp_legacy/oltp.lua --mysql-table-engine=innodb --mysql-host=自己的ip地址 --mysql-port=3306 --mysql-user=test --mysql-password=自己的密码 --oltp-tables-count=20 --oltp-table-size=200000 prepare

生成20张表,每张表20万的测试数据,加起来差不多400万,模拟一个小系统

因为这个数据库配置不高所以要等待一段时间。

对于真实系统测试需要导入非常大量的数据,并且时间在一天以上结果会比较准

当所有的数据都生成完毕之后,我们就可以开始基准测试了:

 

开始测试:

sysbench /usr/share/sysbench/tests/include/oltp_legacy/oltp.lua --mysql-table-engine=innodb --mysql-host=(自己的ip地址) --mysql-port=3306 --mysql-user=test --mysql-password=(自己的密码)  --oltp-test-mode=complex --threads=10 --time=300 --report-interval=10 run >> /api/sysbench.log

参数的定义在上面都列出来了不在解释

 

分析结果:

sysbench 1.0.17 (using bundled LuaJIT 2.1.0-beta2)

Running the test with following options:
Number of threads: 10
Report intermediate results every 10 second(s)
Initializing random number generator from current time


Initializing worker threads...

Threads started!

[ 10s ] thds: 10 tps: 2.50 qps: 61.88 (r/w/o: 45.89/10.00/6.00) lat (ms,95%): 5507.54 err/s: 0.00 reconn/s: 0.00
[ 20s ] thds: 10 tps: 2.79 qps: 56.48 (r/w/o: 39.71/11.18/5.59) lat (ms,95%): 8638.96 err/s: 0.00 reconn/s: 0.00
[ 30s ] thds: 10 tps: 2.91 qps: 56.63 (r/w/o: 38.89/11.93/5.81) lat (ms,95%): 6360.91 err/s: 0.00 reconn/s: 0.00
[ 40s ] thds: 10 tps: 2.50 qps: 52.10 (r/w/o: 37.40/9.70/5.00) lat (ms,95%): 7086.63 err/s: 0.00 reconn/s: 0.00
[ 50s ] thds: 10 tps: 2.90 qps: 57.10 (r/w/o: 39.70/11.60/5.80) lat (ms,95%): 6360.91 err/s: 0.00 reconn/s: 0.00
[ 60s ] thds: 10 tps: 2.90 qps: 57.60 (r/w/o: 40.20/11.60/5.80) lat (ms,95%): 8038.61 err/s: 0.00 reconn/s: 0.00
[ 70s ] thds: 10 tps: 2.60 qps: 51.70 (r/w/o: 36.10/10.40/5.20) lat (ms,95%): 8638.96 err/s: 0.00 reconn/s: 0.00
[ 80s ] thds: 10 tps: 2.80 qps: 56.40 (r/w/o: 39.60/11.20/5.60) lat (ms,95%): 6594.16 err/s: 0.00 reconn/s: 0.00

中间忽略

SQL statistics:
    queries performed:
        read:                            11774                总的读的数量
        write:                           3364                 总的写的数量
        other:                           1682                 其他操作总数(增删查改外)
        total:                           16820                所有的总数
    transactions:                        841    (2.04 per sec.)          总事务数(每秒事务数目TPS)
    queries:                             16820  (40.73 per sec.)         查询总数(每秒的查询数QPS)
    ignored errors:                      0      (0.00 per sec.)
    reconnects:                          0      (0.00 per sec.)

General statistics:
    total time:                          412.9988s               总花费时间
    total number of events:              841                     总发生事务数

Latency (ms):
         min:                                  450.54           最小花费时间
         avg:                                 3721.21           平均花费时间
         max:                               383095.66           最长花费时间
         95th percentile:                     7215.39           百分之95的平均花费时间
         sum:                              3129536.86          

Threads fairness:                                                 并发
    events (avg/stddev):           84.1000/26.28                  处理总事件的数目(最大请求数量)/标准偏差
    execution time (avg/stddev):   312.9537/33.42                 总的执行的时间/标准偏差(也就是  平均数/标准偏差)

测试的指标含义都在上面的备注里。

下图是Linux下的实际结果截图:

 

以上就是Sysbench对于MySQL基准测试的一个简单Demo

 

转载请注明出处:

https://blog.csdn.net/qq_36652619

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_我走路带风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值