mysqlslap简介—MySQL压力测试工具

mysqlslap:load emulation client,mysql自带的一个压力测试工具,自5.1.4版本之后的MySQL client 包含了此工具,下载mysql client rpm包安装后可直接使用

在使用mysqlslap的时候,可以指定sql语句或者是包含sql语句的文件,如果是文件,那么文件中的每一行至少有一个语句(不能一个sql语句分成两行或多行),因为默认的分隔符(delimiter)是换行符,当然,你也可以手动重置新的分隔符。另外,你也不能在文件中添加注释,mysqlslap不支持。。。

mysqlslap有三个步骤:

1、创建schema,table,或者任何你想用来测试的procedure和data,这个是单客户端连接

2、进行负载测试 load test,这一阶段你可以模拟多客户端连接

3、清理现场,你可以指定删除不用的对象、数据,这个是单客户端连接

详细的参数解释:

********************************************************

–auto-generate-sql

自动测试,整个步骤如下,准备数据和压力测试过程可以自定义参数配置。

准备数据:创建测试schema mysqlslap,在其中建一张测试表,包含两个字段(CREATE TABLE `t1` (intcol1 INT(32) ,charcol1 VARCHAR(128));),插入99条随即数据。

压力测试:5个select和5个insert语句,交替执行

清理现场:删除schema mysqlslap

######################################################

与“创建测试表”相关的参数:

######################################################

–auto-generate-sql-add-autoincrement

创建的测试表额外增加一个autoincrement字段,CREATE TABLE `t1` (id serial,intcol1 INT(32) ,charcol1 VARCHAR(128));

–auto-generate-sql-guid-primary

创建的测试表额外增加一个主键,与–auto-generate-sql-add-autoincrement冲突

CREATE TABLE `t1` (id varchar(32) primary key,intcol1 INT(32) ,charcol1 VARCHAR(128));

–auto-generate-sql-secondary-indexes=2

创建的测试表中包含几个索引

CREATE TABLE `t1` (id0 varchar(32) unique key,id1 varchar(32) unique key,intcol1 INT(32) ,charcol1 VARCHAR(128));

–number-char-cols=2

创建的测试表中字符型字段数量

CREATE TABLE `t1` (intcol1 INT(32) ,charcol1 VARCHAR(128),charcol2 VARCHAR(128));

–number-int-cols=2

创建的测试表中数值型字段数量

CREATE TABLE `t1` (intcol1 INT(32) ,intcol2 INT(32) ,charcol1 VARCHAR(128));

–engine=engine_name

创建的测试表的存储引擎

–create

显式指定准备测试数据的sql,可以是sql file

######################################################

与“生成测试data”相关参数#

######################################################

–auto-generate-sql-write-number=#

全部的insert语句的数量

–auto-generate-sql-unique-write-number=#

不同的insert语句的数量

######################################################

与“生成测试query”相关参数

######################################################

–auto-generate-sql-execute-number

自动生成的全部的query数量

–auto-generate-sql-unique-query-number=2

自动生成的不同的query数量,我也搞不太清楚这个啥意思。

–auto-generate-sql-load-type

可以设置的值有:read (scan tables), write (insert into tables), key (read primary keys), update (update primary keys), or mixed (half inserts, half scanning selects). The default is mixed.

–commit=#

多少个sql之后提交一次

–number-of-queries=#

总的query次数(并发数concurrency 与 每个客户端的query次数queries per client 的乘积)

如果设置–number-of-queries=10 –concurrency =2 那么每个客户端执行5个query

不能与auto-generate-sql-execute-number共存,auto-generate-sql-execute-number=number-of-queries/concurrency

######################################################

其他

######################################################

–host

–port

–user

–password

–protocol

–socket

–concurrency=#

并发数量

–iterations=#

重复的次数(相同的测试多进行几次,求一个平均值),指的是整个步骤的重复次数,包括准备数据、测试load、清理现场。

–delimiter

在不使用–auto-generate-sql的情况下,–create和–query后面指定的str或者sql-file中的语句分隔符,最好重新设置为”;”

–detach=#

在N个语句之后重新连接mysql,重新创立连接

–create-schema

进行测试的schema(在mysql中也就是db),默认会创建一个名为mysqlslap的schema

–post-query

–pre-query

测试前后执行的sql(也可以是sql文件)

–post-system

–pre-system

测试前后执行的os命令

–debug-info

打印内存和cpu信息

–ssl-ca=file_name

–ssl-capath=dir_name

–ssl-cert=file_name

–ssl-cipher=cipher_list

–ssl-key=file_name

–ssl-verify-server-cert

ssl相关设置

《一个非常有用的参数》

–only-print

如果不知道测试内容,可以使用–only-print把测试sql打印出来

当你不知道某个参数作用的时候就可以结合它把测试sql打印出来对比一下就一清二楚了。

**************************************************

例子:

[root@10.1.30.180 ~]# mysqlslap -a –auto-generate-sql-guid-primary –auto-generate-sql-load-type=mix –auto-generate-sql-unique-query-number=5 –auto-generate-sql-unique-write-number=6 –auto-generate-sql-secondary-indexes=4 –concurrency=100 –engine=myisam –number-char-cols=4 –number-int-cols=3 –post-system=”date” –verbose –pre-system=”date” –auto-generate-sql-execute-number=10011

Wed Nov 10 15:24:27 CST 2010

Wed Nov 10 15:25:38 CST 2010

Benchmark

Running for engine myisam

Average number of seconds to run all queries: 70.906 seconds

Minimum number of seconds to run all queries: 70.906 seconds

Maximum number of seconds to run all queries: 70.906 seconds

Number of clients running queries: 100

Average number of queries per client: 10011

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23721637/viewspace-1044211/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/23721637/viewspace-1044211/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值