对mysql进行压力测试
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进行压力测试