mysql性能测试工具msyqlslap_Mysql压力测试工具 - Mysqlslap使用教程

MySQL从5.1.4版开始带有一个压力测试工具mysqlslap,通过模拟多个并发客户端访问mysql来执行测试,

使用起来非常的简单。通过mysqlslap --help可以获得可用的选项,这里列一些主要的参数,更详细的说明参

考官方手册。

--auto-generate-sql, -a

自动生成测试表和数据

--auto-generate-sql-load-type=type

测试语句的类型。取值包括:read,key,write,update和mixed(默认)。

--number-char-cols=N, -x N

自动生成的测试表中包含多少个字符类型的列,默认1

--number-int-cols=N, -y N

自动生成的测试表中包含多少个数字类型的列,默认1

--number-of-queries=N

总的测试查询次数(并发客户数×每客户查询次数)

--query='SQL',(--query缩写为-q)

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

--create-schema

测试的schema,MySQL中schema也就是database,指定需要测试地数据库

--ommint=N

多少条DML后提交一次

--compress, -C

如果服务器和客户端支持都压缩,则压缩信息传递

–concurrency=N, -c N

并发量,也就是模拟多少个客户端同时执行select。可指定多个值,以逗号或者–delimiter参数指定的值做为分隔符

--engine=engine_name, -e engine_name

创建测试表所使用的存储引擎,可指定多个,可以测试sql在不同引擎下地效果

--terations=N, -i N

测试执行的迭代次数

--detach=N

执行N条语句后断开重连

--debug-info, -T

打印内存和CPU的信息

--only-print

只打印测试语句而不实际执行

下面是我在ubuntu上测试的一个例子:

root@Cyrec-desktop:~# mysqlslap --concurrency=50,100 --number-of-queries 1000 --debug-info --create-schema='student' --iterations=5 --engine=myisam,innodb --query='select * from student limit 20' -uroot -pxxxx > log.txt

解释一下: --concurrency=50,100分别模拟50和100个并发的情况,--number-of-queries 总共执行查询

1000次, --create-schema='student'设置执行sql的数据库,开始测试地时候没写这个选项报如下错误:

mysqlslap: Error when connecting to server: 1049 Unknown database 'mysqlslap',找了很久才发现

原来我开始没看到 --create-schema参数可以选择数据库,将选择数据库写成了sql'use student;'放入--query

参数中,结果就报错 --iterations=5设置迭代数,可以增加准确度。 --query='select * from student limit 20'测

试的sql语句(我是随便写的)当然还可以执行一些事务处理的sql不过就要申明使用innodb引擎。-u root

-pxxxx输入数据库的用户名密码 ,最后 > log.txt是将结果导出到文件中,也可以不导出直接在终端查看结果。

测试地结果如下:

Benchmark

Running for engine myisam

Average number of seconds to run all queries: 0.392 seconds

Minimum number of seconds to run all queries: 0.338 seconds

Maximum number of seconds to run all queries: 0.443 seconds

Number of clients running queries: 50

Average number of queries per client: 20

Benchmark

Running for engine myisam

Average number of seconds to run all queries: 0.433 seconds

Minimum number of seconds to run all queries: 0.411 seconds

Maximum number of seconds to run all queries: 0.486 seconds

Number of clients running queries: 100

Average number of queries per client: 10

Benchmark

Running for engine innodb

Average number of seconds to run all queries: 0.361 seconds

Minimum number of seconds to run all queries: 0.331 seconds

Maximum number of seconds to run all queries: 0.407 seconds

Number of clients running queries: 50

Average number of queries per client: 20

Benchmark

Running for engine innodb

Average number of seconds to run all queries: 0.446 seconds

Minimum number of seconds to run all queries: 0.372 seconds

Maximum number of seconds to run all queries: 0.550 seconds

Number of clients running queries: 100

Average number of queries per client: 10

User time 0.12, System time 4.36

Maximum resident set size 4180, Integral resident set size 0

Non-physical pagefaults 8852, Physical pagefaults 1, Swaps 0

Blocks in 192 out 0, Messages in 0 out 0, Signals 0

Voluntary context switches 35791, Involuntary context switches 2393

总结:mysqlslap内置工具使用比较方便,可以模拟并发以及不同mysql引擎来进行sql的测试。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值