如何安装与使用sysbench
这篇文章主要为大家展示了“如何安装与使用sysbench”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何安装与使用sysbench”这篇文章吧。
sysbench是一个开源的、模块化的、跨平台的多线程性能测试工具,可以用来进行CPU、内存、磁盘I/O、线程、数据库的性能测试。目前支持的数据库有MySQL、Oracle和PostgreSQL。以下操作都将以支持MySQL数据库为例进行。
\1. 目前sysbench代码托管在launchpad上,项目地址: https://github.com/akopytov/sysbench,下载方式:
\2. MySQL官方下载地址:http://dev.mysql.com/downloads/mysql/,下载方式:
二、编译安装\1. Mysql数据库安装:
mysql数据库的安装可参考本站的另一篇文章:Mysql二进制包安装与配置实战记录或直接通过本站右侧的搜索框搜索Mysql会发现很多关于Mysql安装的文章,本文不再讲解。
\2. sysbench编译非常简单,可参考 README 文档,简单步骤如下:
tar-zxvfsysbench-0.4.8.tar.gzcdsysbench-0.4.8./configure&&make&&makeinstallstrip/usr/local/bin/sysbench以上方法适用于MySQL安装在标准默认目录下的情况,如果MySQL并不是安装在标准目录下的话,那么就需要自己指定MySQL的路径了。比如我的MySQL喜欢自己安装在/usr/local/mysql下,则按照以下方法编译:./configure--with-mysql-includes=/usr/local/mysql/include--with-mysql-libs=/usr/local/mysql/lib&&make&&makeinstall当然了,用上面的参数编译的话,就要确保你的MySQLlib目录下有对应的so文件,如果没有,可以自己下载devel或者share包来安装。另外,如果想要让sysbench支持pgsql/oracle的话,就需要在编译的时候加上参数--with-pgsql或者--with-oracle这2个参数默认是关闭的,只有MySQL是默认支持的。三、OLTP测试前准备
初始化测试库环境(总共10个测试表,每个表 100000 条记录,填充随机生成的数据):
cd/tmp/sysbench-0.4.12-1.1/sysbenchmysqladmincreatesbtest./sysbench--mysql-host=127.0.0.1--mysql-port=3317--mysql-user=tpcc--mysql-password=tpcc\--test=tests/db/oltp.lua--oltp_tables_count=10--oltp-table-size=100000--rand-init=onprepare
关于这几个参数的解释:
--test=tests/db/oltp.lua表示调用tests/db/oltp.lua脚本进行oltp模式测试--oltp_tables_count=10表示会生成10个测试表--oltp-table-size=100000表示每个测试表填充数据量为100000--rand-init=on表示每个测试表都是用随机数据来填充的
如果在本机,也可以使用 –mysql-socket 指定 socket 文件来连接。加载测试数据时长视数据量而定,若过程比较久需要稍加耐心等待。
真实测试场景中,数据表建议不低于 10个 ,单表数据量不低于 500万行 ,当然了,要视服务器硬件配置而定。如果是配备了SSD或者PCIE SSD这种高IOPS设备的话,则建议单表数据量最少不低于 1亿行 。
四、进行OLTP测试在上面初始化数据参数的基础上,再增加一些参数,即可开始进行测试了:
./sysbench--mysql-host=127.0.0.1--mysql-port=3306\--mysql-user=tpcc--mysql-password=tpcc\--test=tests/db/oltp.lua--oltp_tables_count=10\--oltp-table-size=10000000--num-threads=8\--oltp-read-only=off--report-interval=10\--rand-type=uniform--max-time=3600\--mysql-table-engine=myisam--max-requests=0\--percentile=99run>>./log/sysbench_oltpX_8_20140921.log
关于这几个参数的解释:
--num-threads=8表示发起8个并发连接--oltp-read-only=off表示不要进行只读测试,也就是会采用读写混合模式测试--report-interval=10表示每10秒输出一次测试进度报告--rand-type=uniform表示随机类型为固定模式,其他几个可选随机模式:uniform(固定),gaussian(高斯),special(特定的),pareto(帕累托)--max-time=120表示最大执行时长为120秒--max-requests=0表示总请求数为0,因为上面已经定义了总执行时长,所以总请求数可以设定为0;也可以只设定总请求数,不设定最大执行时长--percentile=99表示设定采样比例,默认是95%,即丢弃1%的长请求,在剩余的99%里取最大值--mysql-table-engine=myisam表示测试的表存储引擎类型为myisam
即:模拟 对10个表并发OLTP测试,每个表1000万行记录,持续压测时间为 1小时。
真实测试场景中,建议持续压测时长不小于 30分钟 ,否则测试数据可能不具参考意义。
这里需要注意的是,官方网站上的参数有一处有误,即 –mysql-table-engine,官方网站上写的是 –mysql-table-type,这个应该是没有及时更新导致的。
另外,–mysql-table-engine参数还可以指定为 innodb 等 MySQL 支持的表存储引擎类型。
五、测试结果解读测试结果解读如下:
sysbench0.5:multi-threadedsystemevaluationbenchmarkRunningthetestwithfollowingoptions:Numberofthreads:8Reportintermediateresultsevery10second(s)Randomnumbergeneratorseedis0andwillbeignoredThreadsstarted!--每10秒钟报告一次测试结果,tps、每秒读、每秒写、99%以上的响应时长统计[10s]threads:8,tps:1111.51,reads/s:15568.42,writes/s:4446.13,responsetime:9.95ms(99%)[20s]threads:8,tps:1121.90,reads/s:15709.62,writes/s:4487.80,responsetime:9.78ms(99%)[30s]threads:8,tps:1120.00,reads/s:15679.10,writes/s:4480.20,responsetime:9.84ms(99%)[40s]threads:8,tps:1114.20,reads/s:15599.39,writes/s:4456.30,responsetime:9.90ms(99%)[50s]threads:8,tps:1114.00,reads/s:15593.60,writes/s:4456.70,responsetime:9.84ms(99%)[60s]threads:8,tps:1119.30,reads/s:15671.60,writes/s:4476.50,responsetime:9.99ms(99%)OLTPteststatistics:queriesperformed:read:938224--读总数write:268064--写总数other:134032--其他操作总数(SELECT、INSERT、UPDATE、DELETE之外的操作,例如COMMIT等)total:1340320--全部总数transactions:67016(1116.83persec.)--总事务数(每秒事务数)deadlocks:0(0.00persec.)--发生死锁总数read/writerequests:1206288(20103.01persec.)--读写总数(每秒读写次数)otheroperations:134032(2233.67persec.)--其他操作总数(每秒其他操作次数)Generalstatistics:--一些统计结果totaltime:60.0053s--总耗时totalnumberofevents:67016--共发生多少事务数totaltimetakenbyeventexecution:479.8171s--所有事务耗时相加(不考虑并行因素)responsetime:--响应时长统计min:4.27ms--最小耗时avg:7.16ms--平均耗时max:13.80ms--最长耗时approx.99percentile:9.88ms--超过99%平均耗时Threadsfairness:events(avg/stddev):8377.0000/44.33executiontime(avg/stddev):59.9771/0.00
以上是“如何安装与使用sysbench”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。