MySQL数据库基准压力测试工具之MySQLSlap使用实例

来源:互联网 发布:手机淘宝怎样修改差评 编辑:程序博客网 时间:2024/05/13 12:46

一、mysqlslap 介绍

mysqlslap是从5.1.4版开始的一个MySQL官方提供的压力测试工具。通过模拟多个并发客户端访问MySQL来执行压力测试,同时详细的提供了“高负荷攻击MySQL”的数据性能报告。并且能很好的对比多个存储引擎在相同环境下的并发压力性能差别。如果是系统自带或者使用rpm包安装的mysql,安装了MySQL-client端的包就有mysqlslap这个工具。

二、mysqlslap 使用方法介绍

通过mysqlslap –help可以获得可用的选项,这里列一些主要的参数,更详细的说明参考官方手册

1) --concurrency代表并发数量,多个可以用逗号隔开,例如:concurrency=10,50,100, 并发连接线程数分别是1050100个并发。

2) --engines代表要测试的引擎,可以有多个,用分隔符隔开。

3) --iterations代表要运行这些测试多少次。

4) --auto-generate-sql 代表用系统自己生成的SQL脚本来测试。

5--auto-generate-sql-load-type 代表要测试的是读还是写还是两者混合的(read,write,update,mixed

6) --number-of-queries 代表总共要运行多少次查询。每个客户端运行的查询数量可以用查询总数/并发数来计算。

7) --debug-info 代表要额外输出CPU以及内存的相关信息。

8) --number-int-cols :创建测试表的 int 型字段数量

9) --auto-generate-sql-add-autoincrement : 代表对生成的表自动添加auto_increment列,从5.1.18版本开始

10) --number-char-cols 创建测试表的 char 型字段数量。

11) --create-schema 测试的schemaMySQLschema也就是database

12) --query  使用自定义脚本执行测试,例如可以调用自定义的一个存储过程或者sql语句来执行测试。

13) --only-print 如果只想打印看看SQL语句是什么,可以用这个选项。

三、Demo 实例

下面我们使用几个demo实例来进行测试

1Demo1

[root@localhost ~]# mysqlslap -uroot -p -S /home/mysql/mysql.sock --concurrency=50,100,200 --number-of-queries=200 --iterations=10 --auto-generate-sql --auto-generate-sql-load-type=mixed --auto-generate-sql-add-autoincrement --engine=myisam,innodb --debug-info

#备注本次测试以50,100,200个并发线程、运行200个查询、迭代10次,自动生成SQL测试脚本、读、写、更新混合测试、自增长字段、测试引擎为myisam,innodb,输出cpu资源信息

返回信息如下所示:



2Demo2:指定数据库和sql语句

mysqlslap  --concurrency=50,100,200 --iterations=10 --number-of-queries=200 --create-schema='OLAP1011' --query='select  MAX(D_TF_YDFH_REALTIME.TDFDFH) as MAX___TDFDFH,D_TF_YDFH_REALTIME.TIME_ID,D_TF_YDFH_REALTIME.TIME_ID from D_TF_YDFH_REALTIME D_TF_YDFH_REALTIME where 1=1 group by D_TF_YDFH_REALTIME.TIME_ID  LIMIT 2000;' --debug-info -uroot -p -S /home/mysql/mysql.sock

#备注使用mysqlslap指定sql语句进行测试


3Demo3:测试用例

[root@localhost /]# mysqlslap --concurrency=50,100,200 --iterations=20 --number-int-cols=4 --number-char-cols=35 --auto-generate-sql --auto-generate-sql-add-autoincrement --auto-generate-sql-load-type=read --engine=myisam,innodb --number-of-queries=200 --verbose --socket=/home/mysql/mysql.sock -uroot -p

#系统脚本测试,增加int型 4char 35列,测试2种引擎myisam,innodb读的性能,分别用50100200个客户端对服务器进行测试总共200个查询语句 执行迭代20次查询

4、自建SQL测试用例

mysqlslap --create=/yourpath/Test1.sql --query=/yourpath/Test2.sql --concurrency=50,100,200 --iterations=20 --engine=myisam,innodb  -u root -p

#在设定的yourpath目录下创建你的测试sqlTest1Test2并进行50100200的模拟并发测试



参考:http://blog.chinaunix.net/uid-25723371-id-3498970.html

      http://chenhao6.blog.51cto.com/6228054/1314418


0 0
原创粉丝点击