sysbench测试工具
sysbench简介
Sysbench是一个模块化的、跨平台、多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况。它主要包括以下几种方式的测试:cpu性能,磁盘io性能,线程调度性能,内存分配及传输速度和数据库性能。由于本人是dba,因此重点关注sysbench测试数据库的场景。目前sysbench支持mysql,postgreSQL,oracle三种数据源。
下载&安装
1) 下载
通过http://download.csdn.net/download/jungeshidai/8854157页面下载sysbench0.5版本
2) 编译安装
tar -zxvf sysbench-0.5.tar.gz
cd sysbench-0.5
./autogen.sh
./configure
./make
./make install
3) 可能遇到的问题
a) lua脚本,因为sysbench0.5的测试用例改为lua,若有童鞋使用0.5版本,执行命令时仍然采用老的方式,--test=oltp,就会出现报错
“PANIC: unprotected error in call to Lua API (cannot open oltp: No
such file or directory)”,因此注意将--test=oltp改为./tests/db/oltp.lua即可。
b) 运行oltp测试时,默认会在sbtest库里面建表测试,但是库需要自己预先建立好,否则就会出现连不上database的错误,当然,也可以通过参数--mysql-db指定。
测试过程
测试主要包括准备数据阶段,测试阶段和清理阶段。
1) 准备阶段
sysbench --test=./tests/db/oltp.lua --mysql-table-engine=innodb --oltp-table-size=100000 --mysql-socket=/u01/my3306/run/mysql.sock --mysql-user=chuck --mysql-host=localhost --mysql-password=chuck --num-threads=20 prepare
2) 测试阶段
sysbench --test=./tests/db/oltp.lua --mysql-table-engine=innodb --num_threads= --oltp-table-size= --mysql-db=test
--mysql-user=chuck --oltp-tables-count= --mysql-password=chuck run
3) 清理阶段
sysbench --test=./tests/db/select.lua --mysql-table-engine=innodb --num_threads=10 --oltp-table-size=100000 --mysql-db=test --mysql-user=chuck --oltp-tables-count=10 --mysql-password=chuck cleanup
重要参数
--test=STRING
指定测试用例,sysbench0.5所有测试用例采用lua脚本编写,用户可以根据需求写符合自己测试的脚本,因此非常灵活。比如:--test=./tests/db/select.lua
--max-requests=N,设置请求的数目,默认值是10000
--max-time=N,设置执行的时间,默认是0,即没有限制
这两个参数可以配合起来使用,默认值表示,执行完10000个请求,不受时间限制。因为请求可以多种多样,对于不同的lua脚本,对应的就是不同的请求,比如
insert.lua,delete.lua,select.lua等。当然你也可以编辑自己的lua脚本,封装成为一个event。因此,对于不同类型的测试用例,执行时间会相差很大。对于运行时间很快的测试用例,可以增大max-requests的值,对于运行很慢的测试用例,可以通过设置max-time来限制运行时常。
--report-interval=N,设置打印的时间间隔,默认值是0,设置执行的时长,以秒为单位对于很长时间的测试用例,为了得到实时的测试信息,可以设置该参数,否则,只有一直干等,运行结束后才能看到测试报告。
--percentile=N,设置采样比例,默认是95%
--num-threads=N,设置并发的线程数目
执行结果解读
这里以oltp.lua测试用例的测试结果来简单说明下。
sysbench --test=./tests/db/oltp.lua --num_threads= --oltp-table-size= --mysql-db=test --mysql-user=chuck --oltp-tables-count= --mysql-password=chuck --max-requests= --report-interval= --percentile= run
1) 实时信息
每5s采集一次实时信息,tps表示事务数目,writes/reads分别表示平均每秒写和读的次数
[ 5s] threads: 10,
tps: 31.80, reads/s: 460.79, writes/s: 128.00
[ 10s] threads: 10,
tps: 35.40, reads/s: 502.00, writes/s: 143.00
[ 15s] threads: 10,
tps: 31.20, reads/s: 438.20, writes/s: 124.20
[ 20s] threads: 10,
tps: 33.00, reads/s: 463.60, writes/s: 130.40
[ 25s] threads: 10,
tps: 33.60, reads/s: 462.40, writes/s: 134.40
[ 30s] threads: 10,
tps: 34.20, reads/s: 484.80, writes/s: 137.20
[ 35s] threads: 10,
tps: 31.00, reads/s: 438.20, writes/s: 124.40
[ 40s] threads: 10,
tps: 32.20, reads/s: 445.40, writes/s: 128.60
2) 汇总信息
OLTP test statistics:
queries performed:
read: 140000
write: 40000
other: 20000
total: 200000
transactions: 10000 (32.89 per sec.) //总共执行了10000个事务
deadlocks: 0 (0.00 per sec.)
read/write requests: 180000 (592.04 per
sec.) //读写请求有180000,一个事务包含多个读写请求
other operations: 20000 (65.78 per sec.)
Test execution summary:
total time: 304.0326s //总共运行了5分钟
total number of events: 10000
total time taken by event execution:
3039.9491s
per-request statistics:
min: 27.73ms
avg:
303.99ms
max:
1940.30ms
approx. 95 percentile: 635.58ms //95%的平均耗时为635ms,这里对统计值有点疑问,95%的是635ms,而平均值是300ms。
Threads fairness:
events (avg/stddev): 1000.0000/14.47
execution time (avg/stddev): 303.9949/0.02
参考文档
http://www.tuicool.com/articles/iQFF3i
sysbench测试工具的更多相关文章
- sysbench压力测试工具简介和使用(二)
sysbench压力测试工具使用: 2.1 测试数据库服务器的硬件配置信息如下: CPU: 24核心线程数,Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00G ...
- sysbench压力测试工具简介和使用(一)
sysbench压力测试工具安装和参数介绍 一.sysbench压力测试工具简介: sysbench是一个开源的.模块化的.跨平台的多线程性能测试工具,可以用来进行CPU.内存.磁盘I/O.线程.数据 ...
- sysbench压力测试工具安装和参数介绍
一.sysbench压力测试工具简介: sysbench是一个开源的.模块化的.跨平台的多线程性能测试工具,可以用来进行CPU.内存.磁盘I/O.线程.数据库的性能测试.目前支持的数据库有MySQL. ...
- sysbench 压力测试工具
一.sysbench压力测试工具简介: sysbench是一个开源的.模块化的.跨平台的多线程性能测试工具,可以用来进行CPU.内存.磁盘I/O.线程.数据库的性能测试.目前支持的数据库有MySQL. ...
- sysbench(mysql测试工具 )
目录 一.基准测试简介 1.什么是基准测试 2.基准测试的作用 3.基准测试的指标 4.基准测试的分类 二.sysbench 1.sysbench简介 2.sysbench安装 3.sysbench语 ...
- show processlist,sysbench压力测试工具
processlist.sh 记录数据库的状态 #!/bin/bash while true do mysql -uroot -pwangxiaohu -e 'show processlist\G'| ...
- 【转帖】sysbench压力测试工具简介
sysbench压力测试工具简介 https://www.cnblogs.com/pdlife/p/6698957.html 一.sysbench压力测试工具简介: sysbench是一个开源的.模块 ...
- sysbench压力测试工具简介
一.sysbench压力测试工具简介: sysbench是一个开源的.模块化的.跨平台的多线程性能测试工具,可以用来进行CPU.内存.磁盘I/O.线程.数据库的性能测试.目前支持的数据库有MySQL. ...
- [数据库]000 - 🍳Sysbench 数据库压力测试工具
000 - Sysbench 数据库压力测试工具 sysbench 是一个开源的.模块化的.跨平台的多线程性能测试工具,可以用来进行CPU.内存.磁盘I/O.线程.数据库的性能测试.目前支持的数据库有 ...
随机推荐
- 用java实现新浪爬虫,代码完整剖析(仅针对当前SinaSignOn有效)
先来看我们的web.xml文件,如下 <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application ...
- javascript-String
概述 String对象是JavaScript原生提供的三个包装对象之一,用来生成字符串的包装对象实例. var s = new String("abc"); typeof s // ...
- Spark集群 + Akka + Kafka + Scala 开发(3) : 开发一个Akka + Spark的应用
前言 在Spark集群 + Akka + Kafka + Scala 开发(1) : 配置开发环境中,我们已经部署好了一个Spark的开发环境. 在Spark集群 + Akka + Kafka + S ...
- mongodb数据库备份导入导出数据
备份数据: mongodump -h 192.168.2.20 -u game -p 12345678 -d dbname -o /data/test/ --excludeCollection=use ...
- GJM : 使用浏览器的计算力,对抗密码破解 [转载]
感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...
- docker nginx1.7.6+keepalived实现双机热备
0.前提条件 环境两台ubuntu版本14.04 64位系统(并获取root权限) 假设两台服务器ip为:172.16.34.214(master),172.16.34.215(backup),kee ...
- ajax传参到实体类对应字段
之前看公司的代码,从页面ajax传参数到接口类,接口类用一个实体接收.我一直以为c#会自动识别,赋值到同名的字段. 我曾和朋友讨论过,双方辩论.朋友认为c#没有这种功能,没有这样高级匹配的机制.而我因 ...
- struts原理
Struts是一个开源的web框架. 为什么会有struts? 因为我们对mvc理解的不同,可能造成不同公司写程序的时候,规范不统一,这样不利于程序的维护和扩展,所以我们有必要用一个统一的规范来开发项 ...
- java内存模型-顺序一致性
数据竞争与顺序一致性保证 当程序未正确同步时,就会存在数据竞争.java 内存模型规范对数据竞争的定义如下: 在一个线程中写一个变量, 在另一个线程读同一个变量, 而且写和读没有通过同步来排序. 当代 ...
- 【Spring】Spring框架之Struts2和Spring的优点
Java Web开发使用Structs2和Spring框架的好处 今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以现在公司很多web项目的控制层的技术 ...