教程集 www.jiaochengji.com
教程集 >  数据库  >  mysql  >  正文 mysql压力测试工具mysqlslap测试

mysql压力测试工具mysqlslap测试

发布时间:2023-04-30   编辑:jiaochengji.com
教程集为您提供mysql压力测试工具mysqlslap测试等资源,欢迎您收藏本站,我们将为您提供最新的mysql压力测试工具mysqlslap测试资源
在使用mysq5.1.4版本之后我们会发现有一个名为mysqlslap压力测试工具,它可以非常方便了帮我们测试自己服务器能同是负载多少,下面看到一文章我们一起来看看测试例子与mysqlslap用法吧。

这里列一些主要的参数,更详细的说明参考官方手册。如果是系统自带或者使用rpm包安装的mysql,安装了MySQL-client端的包就有mysqlslap这个工具。
下图是运行mysqlslap -a -c 500 -i 10 -uroot -p123456测试时mysql的连接进程数:

\'mysql压力测试工具mysqlslap测试\'

各种测试参数实例(-p后面跟的是mysql的root密码):
单线程测试。测试做了什么。
# mysqlslap -a -uroot -p123456

多线程测试。使用–concurrency来模拟并发连接。
# mysqlslap -a -c 100 -uroot -p123456

迭代测试。用于需要多次执行测试得到平均值。
# mysqlslap -a -i 10 -uroot -p123456


# mysqlslap ---auto-generate-sql-add-autoincrement -a -uroot -p123456

# mysqlslap -a --auto-generate-sql-load-type=read -uroot -p123456

# mysqlslap -a --auto-generate-secondary-indexes=3 -uroot -p123456

# mysqlslap -a --auto-generate-sql-write-number=1000 -uroot -p123456

# mysqlslap --create-schema world -q "select count(*) from City" -uroot -p123456

# mysqlslap -a -e innodb -uroot -p123456

# mysqlslap -a --number-of-queries=10 -uroot -p123456

测试同时不同的存储引擎的性能进行对比:
# mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --iterations=5 --engine=myisam,innodb --debug-info -uroot -p123456
执行一次测试,分别50和100个并发,执行1000次总查询:
# mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --debug-info -uroot -p123456
50和100个并发分别得到一次测试结果(Benchmark),并发数越多,执行完所有查询的时间越长。为了准确起见,可以多迭代测试几次:
# mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --iterations=5 --debug-info -uroot -p123456


mysqlslap是一个mysql官方提供的压力测试工具。以下是比较重要的参数:
–defaults-file,配置文件存放位置
–concurrency,并发数
–engines,引擎
–iterations,迭代的实验次数
–socket,socket文件位置

自动测试:

–auto-generate-sql,自动产生测试SQL
–auto-generate-sql-load-type,测试SQL的类型。类型有mixed,update,write,key,read。
–number-of-queries,执行的SQL总数量
–number-int-cols,表内int列的数量
–number-char-cols,表内char列的数量

可以使用mysqlslap --help来显示使用方法:
Default options are read from the following files in the given order:
/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf
--concurrency代表并发数量,多个可以用逗号隔开,concurrency=10,50,100, 并发连接线程数分别是10、50、100个并发。
--engines代表要测试的引擎,可以有多个,用分隔符隔开。
--iterations代表要运行这些测试多少次。
--auto-generate-sql 代表用系统自己生成的SQL脚本来测试。
--auto-generate-sql-load-type 代表要测试的是读还是写还是两者混合的(read,write,update,mixed)
--number-of-queries 代表总共要运行多少次查询。每个客户运行的查询数量可以用查询总数/并发数来计算。
--debug-info 代表要额外输出CPU以及内存的相关信息。
--number-int-cols :创建测试表的 int 型字段数量
--auto-generate-sql-add-autoincrement : 代表对生成的表自动添加auto_increment列,从5.1.18版本开始
--number-char-cols 创建测试表的 char 型字段数量。
--create-schema 测试的schema,MySQL中schema也就是database。
--query  使用自定义脚本执行测试,例如可以调用自定义的一个存储过程或者sql语句来执行测试。
--only-print 如果只想打印看看SQL语句是什么,可以用这个选项。
mysqlslap -umysql -p123 --concurrency=100 --iterations=1 --auto-generate-sql --auto-generate-sql-add-autoincrement --auto-generate-sql-load-type=mixed --engine=myisam --number-of-queries=10 --debug-info
或:
指定数据库和sql语句:
mysqlslap -h192.168.3.18 -P4040 --concurrency=100 --iterations=1 --create-schema='test' --query='select * from test;' --number-of-queries=10 --debug-info -umysql -p123
要是看到底做了什么可以加上:--only-print
Benchmark
        Average number of seconds to run all queries: 25.225 seconds
        Minimum number of seconds to run all queries: 25.225 seconds
        Maximum number of seconds to run all queries: 25.225 seconds
        Number of clients running queries: 100
        Average number of queries per client: 0
以上表明100个客户端同时运行要25秒
 
再如:
mysqlslap -uroot -p123456 --concurrency=100 --iterations=1 --engine=myisam --create-schema='haodingdan112' --query='select *  From order_boxing_transit where id = 10' --number-of-queries=1 --debug-info

您可能感兴趣的文章:
网站测试技术简介
golang实现的压力测试工具
压缩文件忘记密码怎么办 压缩文件密码找回方法
php程序员做什么的?
mysql Access denied for user 'root'@'localhost' 问题的解决方法
bind(dns)压力测试软件queryperf的使用
:first-child和:last-child学习笔记
15款JavaScript和jQuery开发工具、插件
bind 压力测试软件 queryperf
php 服务器整数,浮点,数据IO能力测试函数

[关闭]
~ ~