sysbench基准测试工具使用
1、源码编译安装
源码下载地址(目前有0.4/0.5/1.0三个分支版本):https://github.com/akopytov/sysbench
编译安装:
unzip sysbench-1.0.zip
//进入目录,配置编译安装
./autogen.sh
./configure --with-mysql-includes=/usr/local/mysql/include/ --with-mysql-libs=/usr/local/mysql/lib/ --prefix=/usr/local/sysbench/v1.
make
make install
//配置环境变量
//...
可能遇到的问题:
编译安装完成以后,执行sysbench命令,会报如下错误:
sysbench: error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory
问题原因,没有正确配置环境变量LD_LIBRARY_PATH,执行如下命令(我的MySQL采用源码安装方式,目录在/usr/local/mysql,所以头文件与库文件都在该目录下):
export LD_LIBRARY_PATH=/usr/local/mysql/lib/
2、执行sysbench命令,打印出帮助信息如下:
Missing required command argument.
Usage:
sysbench --test=<test-name> [options]... <command>
Commands: prepare run cleanup help version //Usage中的<command>部分,分别表示“准备”、“运行”、“清理”、“帮助”、“版本”
General options: //通用选项,用于设置线程数量,请求数目等多种测试属性
--num-threads=N number of threads to use [1]
--max-requests=N limit for total number of requests [10000]
//略...
General database options: //通用的数据库选项,sysbench支持MySQL、Oracle等多种数据库测试
--db-driver=STRING specifies database driver to use ('help' to get list of available drivers) 指定测试用的数据库驱动
--db-ps-mode=STRING prepared statements usage mode {auto, disable} [auto]
--db-debug=[on|off] print database-specific debug information [off] 数据库调试信息是否打开
Compiled-in database drivers: //内建的数据库驱动,对于MySQL数据库测试直接使用内建驱动就可以了
mysql - MySQL driver
mysql options: //针对MySQL数据库测试的一些选项
--mysql-host=[LIST,...] MySQL server host [localhost] 主机IP地址
--mysql-port=[LIST,...] MySQL server port [3306] 主机端口号
--mysql-socket=[LIST,...] MySQL socket 采用的socket
--mysql-user=STRING MySQL user [sbtest] 用户名
--mysql-password=STRING MySQL password [] 密码
--mysql-db=STRING MySQL database name [sbtest] 测试目标数据库
//略...
Compiled-in tests: //内建的测试类型,如下5中测试直接在“--test=...”后面指定就可以了,如果内建测试不能满足需求可以采用lua脚本自定义测试
fileio - File I/O test IO性能测试
cpu - CPU performance test CPU性能测试
memory - Memory functions speed test 内存连续读写性能测试
threads - Threads subsystem performance test 线程调度器性能测试
mutex - Mutex performance test 互斥锁性能测试
3、内建测试1:fileio测试
①、准备测试数据集,使用prepare命令
[lj95801@localhost sysbench]$ sysbench --test=fileio --file-total-size=5G prepare
--test=fileio 表示测试类型为内建的fileio测试
--test-total-size=5G 表示准备测试数据集为50G大小
prepare 命令准备测试数据集
输出结果如下:
sysbench 1.0: multi-threaded system evaluation benchmark
128 files, 40960Kb each, 5120Mb total
Creating files for the test...
Extra file open flags: 0
Creating file test_file.0
Creating file test_file.1
Creating file test_file.2
//...
从打印可以看出,程序会自动生成128个文件,每个文件4MB大小。
②、使用help命令,查看fileio测试的帮助文档:
[luojun@localhost sysbench]$ sysbench --test=fileio help
sysbench 1.0: multi-threaded system evaluation benchmark
fileio options: //可用的选项
--file-num=N number of files to create [128] //文件数量
--file-block-size=N block size to use in all IO operations [16384] //文件块大小设定
--file-total-size=SIZE total size of files to create [2G] //文件总大小
--file-test-mode=STRING test mode {seqwr, seqrewr, seqrd, rndrd, rndwr, rndrw} //测试模式
--file-io-mode=STRING file operations mode {sync,async,mmap} [sync] //io模式,“同步”、“异步”
--file-extra-flags=STRING additional flags to use on opening files {sync,dsync,direct} []
--file-fsync-freq=N do fsync() after this number of requests (0 - don't use fsync()) [100] //fsync()方法调用频率
--file-fsync-all=[on|off] do fsync() after each write operation [off] //每一次写操作都进行fsync()同步,默认为off
--file-fsync-end=[on|off] do fsync() at the end of test [on] //在测试结束之前调用fsync()同步方法
--file-fsync-mode=STRING which method to use for synchronization {fsync, fdatasync} [fsync]
--file-merged-requests=N merge at most this number of IO requests if possible (0 - don't merge) [0]
--file-rw-ratio=N reads/writes ratio for combined test [1.5] //读写比率设定
有一个重要的测试选项:--file-test-mode=STRING。其可用的选项为:
seqwr:顺序写
seqrewr:顺序重写
seqrd:顺序读
rndrd:随机读取
rndwr:随机写入
rndrw:混合随机读/写
③、作混合随机读写测试:
[luojun@localhost sysbench]$ sysbench --test=fileio --file-test-mode=rndrw --file-total-size=5G --file-rw-ratio= run
选项解释:
--test-fileio:测试类型为IO测试
--file-total-size=5G:测试文件总大小为5G
--file-test-mode=rndrw:文件IO测试模式为随机混合读写方式
--file-rw-ratio=2:读写次数比率为2
④、分析打印结果
sysbench 1.0: multi-threaded system evaluation benchmark Running the test with following options:
Number of threads: //测试线程数
Initializing random number generator from current time //测试属性设定,可以通过选项控制
Extra file open flags:
files, 40MiB each
5GiB total file size
Block size 16KiB
Number of IO requests:
Read/Write ratio for combined random IO test: 2.00
Periodic FSYNC enabled, calling fsync() each requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing random r/w test
Initializing worker threads... Threads started! //测试过程中文件操作情况
File operations:
reads/s: 95.45 //每秒钟读请求数
writes/s: 47.72 //每秒钟写请求数
fsyncs/s: 183.25 //没表中同步次数 //吞吐率
Throughput:
read, MiB/s: 1.49 //读,.49MB每秒
written, MiB/s: 0.75 //写,.75MB每秒 //统计数据
General statistics:
total time: .8488s //测试总时长
total number of events: //事件数量
total time taken by event execution: .6674s //事件执行事件
response time: //事件响应事件统计
min: .02ms //最短
avg: .97ms //平均
max: .70ms //最长
approx. percentile: .77ms //%以上事件响应时长 Threads fairness: //线程公平性统计信息
events (avg/stddev): 10000.0000/0.00
execution time (avg/stddev): 39.6674/0.00
与文件IO性能评价密切相关的指标有:每秒钟请求数、吞吐量、95%以上事件响应时间。
⑤、清除测试数据集
[luojun@localhost sysbench]$ sysbench --test=fileio --file-total-size=5G cleanup
参考文章:
http://beagoodboy.iteye.com/blog/1280907
《高性能MySQL》第三版
sysbench基准测试工具使用的更多相关文章
- sysbench基准测试工具
一.简介SysBench是一个模块化的.跨平台.多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况.当前功能允许测试的系统参数有:file I/O performance (文件I ...
- MySQL基准测试工具--sysbench
我们需要知道的是sysbench并不是一个压力测试工具,是一个基准测试工具.linux自带的版本比较低,我们需要自己安装sysbench. [root@test2 ~]# sysbench --ver ...
- myql基准测试工具Sysbench
一.Sysbench介绍 SysBench是一个模块化的.跨平台.多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况.它主要包括以下几种方式的测试: 1.cpu性能 2.磁盘io性 ...
- sysbench测试工具
sysbench简介 Sysbench是一个模块化的.跨平台.多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况.它主要包括以下几种方式的测试:cpu性能,磁盘io性能,线程调度性 ...
- MySQL基准测试工具
一.基准测试 基准测试(benchmark)是针对系统设计的一种压力测试. 基准测试是简化了的压力测试. 1.1 常见指标 TPS QPS 响应时间 并发量 1.2 收集与分析数据脚本 收集数据的sh ...
- 一篇文章看懂TPCx-BB(大数据基准测试工具)源码
TPCx-BB是大数据基准测试工具,它通过模拟零售商的30个应用场景,执行30个查询来衡量基于Hadoop的大数据系统的包括硬件和软件的性能.其中一些场景还用到了机器学习算法(聚类.线性回归等).为了 ...
- js 性能基准测试工具-告别可能、也许、大概这样更快更省
平时写js经常遇到这样做是不是更快点?但又没有具体简单可测试的工具,最近也倒序看博客园司徒正美 js分类下的文章 [ps:去年灵光一闪,发现看博客园排名前100的博客.按照文章分类倒序看是学习最快的方 ...
- mysql基准测试工具tpcc-mysql安装、使用、结果解读
TPCC是专门针对联机交易处理系统(OLTP系统)的规范,一般情况下我们也把这类系统称为业务处理系统,tpcc-mysql是percona基于TPC-C(下面简写成TPCC)衍生出来的产品,专用于My ...
- sysbench基准测试(2)——oltp.lua测试
前面知道sysbench基准测试的主要步骤为:prepare(准备数据集)→ run(运行测试)→ cleanup(清除数据集) 这一节介绍oltp.lua测试. oltp基准测试模拟了一个简单的事物 ...
随机推荐
- JPA无法删除对象【实际项目解决办法】
并非通用, 根据自己实际情况来 不能删除前的dao方法 public void delete(CmsProjectNew bean); 可以删除后的dao方法 @Modifying @Query(&q ...
- 《DSP using MATLAB》示例Example7.14
代码: M = 20; alpha = (M-1)/2; l = 0:M-1; wl = (2*pi/M)*l; Hrs = [1, 1, 1, zeros(1, 15), 1, 1]; % Idea ...
- 《DSP using MATLAB》示例Example 6.27
代码: % r = 0.9; theta = (pi/180)*[-55:5:-35, 35:5:55]'; p = r*exp(j*theta); a = poly(p); b = 1; w = [ ...
- spring注解实现业务层事务管理,当业务层自调用时,事务失效问题解决
前些日子一朋友在需要在目标对象中进行自我调用,且需要实施相应的事务定义,且网上的一种通过BeanPostProcessor的解决方案是存在问题的.因此专门写此篇帖子分析why. 1.预备知识 aop概 ...
- asp.net远程调用WebService的两种方法(转载)
一,静态方法在“解决方案‘项目名’” -> 相应的文件夹,如“Web References” ->右键“添加WEB引用”->在URL里写入地址.二,动态方法在“解决方案‘项目名’” ...
- Codeforces Round #249 (Div. 2)-D
这场的c实在不想做,sad. D: 标记一下每个点8个方向不经过黑点最多能到达多少个黑点. 由题意可知.三角形都是等腰三角形,那么我们就枚举三角形的顶点. 对于每个定点.有8个方向能够放三角形. 然后 ...
- linux查找目录下的所有文件中是否含有某个字符串 (转)
查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" 查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名 find .|xar ...
- bzoj 4036 按位或 —— min-max容斥+FMT
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4036 min-max容斥:https://blog.csdn.net/ez_2016gdgz ...
- c# 启动关闭sql服务
static void Main(string[] args) { ServiceController sc = new ServiceController("MSSQL$SQLEXPRES ...
- MVC涉及RouteTable自定义路径
Routing 到目前为止,我们已经解决了MVC的很多问题,但忽略了最基本的最重要的一个问题:当用户发送请求时,会发生什么? 最好的答案是“执行Action 方法”,但仍存在疑问:对于一个特定的URL ...