Msyqlslap工具测试
上一篇 / 下一篇 2017-01-17 11:57:01 / 个人分类:MySQL
上次说了loadrunner测试mysql并发性能可行性分析报告,对不熟悉loadrunner的同事而言颇麻烦,下面我们换用简单好用的方式,尽可能一个命令就搞定测试,就是传说中的mysqlslap,也不是很神秘它是mysql自带的工具。
MySQLslap介绍
mysqlslap是从5.1.4版开始的一个MySQL官方提供的压力测试工具。通过模拟多个并发客户端访问MySQL来执行压力测试,同时详细的提供了“高负荷攻击MySQL”的数据性能报告。并且能很好的对比多个存储引擎在相同环境下的并发压力性能差别。通过mysqlslap–help可以获得可用的选项,这里列一些主要的参数,更详细的说明参考官方手册。
MySQLslap【option】
官方给出的MySQLslap参数介绍,全英文的其实不用怕我们能用到的参数不多,而且用过数据库的都认识几个关键的词,打比方:第一个参数--auto-generate-sql,中国式英语就可以猜到意思是“自动生成SQL”,再去简单看一下Description描述意思差不多了51Testing软件测试网J+Y1K7@j!x"o/kH:n
介绍使用频率比较高的参数:
1.--auto-generate-sql:
-a自动生成测试表和数据,表示用mysqlslap工具自己生成的SQL脚本来测试并发压力;
2.--engine
-e engine_name:代表要测试的引擎,可以有多个。例如:--engines=myisam,innodb;
3.--iterations
-i N测试执行的迭代次数,代表要在不同并发环境下,各自运行测试多少次
4.--query
-q使用自定义脚本执行测试,例如可以调用自定义的一个存储过程或者sql语句来执行测试
5.--host数据库server地址
6.--port端口
7.--user --password连接数据库的用户名,密码;
8.--concurrency
-c N表示并发量,也就是模拟多少个客户端同时执行select。可指定多个值,以逗号或者--delimiter参数指定的值做为分隔符
9.--create:用于创建表
10.--create-schema:代表自定义的测试库名称,测试的schema
11.--debug-info:调试时打印内存和CPU信息
12.--debug:写debug log
13.--CSV:输出CSV格式的文件
其他参数用时在参考
0qDQ:?"B"O%Bh3|u,]0
MySQLslap实例
3J*~)s:n(p:\+o9ZAd Fk0
1.使用自动生成脚本测试数据库性能
C:\mysql-5.6.17-winx64\bin>mysqlslap -h "127.0.0.1" -uroot -p -a --debug-info -c 5 --number-of-queries=20 --engine=myisam,innodb --csv="c:/test.csv"
参数介绍
-u :用户名 -p :密码
-a (--auto-generate-sql) :自动生成sql脚本测试数据库
--debug-info :输出debug信息,包括内存,CPU等
--concurrency :用户并发数,可填写多个
--number-of-queries :每个用户的查询次数
--engine :需要测试的数据库引擎
执行结果:
51Testing软件测试网SP2A8UtM7l0T;D0i"AC
:O3V5qRq h%{P!t1~0生成的CSV文件及转化成图表
myisam | mixed | 0.016 | 0.016 | 0.016 | 5 | 4 |
innodb | mixed | 0 | 0 | 0 | 5 | 4 |
51Testing软件测试网q0A*G c%BZ%d
混合测试时myisam性能更好些,图表上用时更少
Z9FH @5B u J3{0
./mysqlslap -a -umpup -pmpup -h 127.0.0.1
Benchmark
Average number of seconds to run all queries: 0.006 seconds
Minimum number of seconds to run all queries: 0.006 seconds
Maximum number of seconds to run all queries: 0.006 seconds
Number of clients running queries: 1
Average number of queries per client: 0
51Testing软件测试网t5y9?;[ d8b4z x
./mysqlslap -a --auto-generate-sql-load-type=read -umpup -pmpup -h 127.0.0.1
Benchmark
Average number of seconds to run all queries: 0.004 seconds
Minimum number of seconds to run all queries: 0.004 seconds
Maximum number of seconds to run all queries: 0.004 seconds
Number of clients running queries: 1
Average number of queries per client: 0
'E5Qt7v\7B0
O&{5wJ7M,\B,GX0
./mysqlslap -a --auto-generate-sql-write-number=1000 -umpup -pmpup -h 127.0.0.1