对mysql进行压力测试

作者 : 开心源码 本文共2011个字,预计阅读时间需要6分钟 发布时间: 2022-05-12 共158人阅读

1、压力测试

mysqlslap是从5.1.4开始提供的一个官方的压力测试工具,通过模拟并发用户端访问mysql来执行压力测试,并且能很好的比照多个存储引擎在相同环境下的并发压力性能差别

mysqlslap的运行有如下3个步骤:

1. 创立schema、table、test data 等,使用单个连接 (在MySQL中,schema就是database);

2. 运行负载测试,可以使用多个并发用户端连接;

3. 测试环境清除(删除创立的数据、表等,断开连接),使用单个连接。

使用语法如下:

# mysqlslap [options]

常用参数 [options] 详细说明:

–auto-generate-sql, -a 自动生成测试表和数据,表示用mysqlslap工具自己生成的SQL脚原本测试并发压力。

–auto-generate-sql-load-type=type 测试语句的类型。代表要测试的环境是读操作还是写操作还是两者混合的。取值包括:read,key,write,update和mixed(默认)。

–auto-generate-sql-add-auto-increment 代表对生成的表自动增加auto_increment列,从5.1.18版本开始支持。

–number-char-cols=N, -x N 自动生成的测试表中包含多少个字符类型的列,默认1

–number-int-cols=N, -y N 自动生成的测试表中包含多少个数字类型的列,默认1

–number-of-queries=N 总的测试查询次数(并发用户数×每用户查询次数)

–query=”sql statement”,-q 使用自己设置脚本执行测试,例如可以调用自己设置的一个存储过程或者者sql语句来执行测试。

–create=”sql statement” 创立表的SQL语句或者文件

–concurrency=N, -c N 表示并发量,也就是模拟多少个用户端同时执行select。可指定多个值,以逗号或者者–delimiter参数指定的值做为分隔符。例如:–concurrency=100,200,500。

–engine=engine_name, -e engine_name 代表要测试的引擎,可以有多个,用分隔符隔开。例如:–engines=myisam,innodb。

–iterations=N, -i N 测试执行的迭代次数,代表要在不同并发环境下,各自运行测试多少次。

–only-print 只打印测试语句而不实际执行。

–debug-info, -T 打印内存和CPU的相关信息。

说明:

测试的过程需要生成测试表,插入测试数据,这个mysqlslap可以自动生成,默认生成一个mysqlslap的schema,假如已经存在则先删除。可以用–only-print来打印实际的测试过程,整个测试完成后不会在数据库中留下痕迹。

各种测试参数实例(-p后面跟的是mysql的root密码):

Demo 1:

单线程测试。测试做了什么。

# mysqlslap -a -uroot -p123456

多线程测试。使用–concurrency来模拟用户端并发连接数。如,100个用户端并发连接数据库。

# mysqlslap -a -c 100 -uroot -p123456

迭代测试。用于需要屡次执行测试得到平均值。如,迭代10次,取平均值。

# mysqlslap -a -i 10 -uroot -p123456

Demo 2:

测试同时不同的存储引擎的性能进行比照:

# mysqlslap -a –concurrency=50,100 –number-of-queries 1000 –iterations=5 –engine=myisam,innodb -uroot -p123456

分别500个并发,每个并发用户端执行一次查询,共500次查询,和1000个并发,每个并发用户端执行一次查询,共1000次查询。为了精确起见,可以多迭代测试几次:

两个测试都自动生成SQL测试脚本,各自迭代10次取平均值。测试环境包括读、写、升级混合测试,自增长字段、测试引擎为innodb。

# mysqlslap –uroot –p –concurrency=500 –I 10 –a –auto-generate-sql-type=mixed –auto-generate-sql-add-autoincrement –engine=innodb –number-of-queries=500

# mysqlslap –uroot –p –concurrency=1000 –I 10 –a –auto-generate-sql-type=mixed –auto-generate-sql-add-autoincrement –engine=innodb –number-of-queries=1000

转载来源:https://www.cnblogs.com/ddbear/p/6930141.html

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 对mysql进行压力测试

发表回复