1.1 常见 MySQL 压力测试工具
对 MySQL 服务进行压力测试,可以让我们提前知晓当前服务节点的性能,从而对整个架构的负载能力有合理的预期,进而做出相应的调整和部署。
常见的 MySQL 压力测试工具包括 mysqlslap,Sysbench,tpcc-mysql,MySQL Benchmark Suite,MySQL super-smack,MyBench 等,其中 mysqlslap 是 mysql 官方提供的压力测试工具,安装 mysql 服务就可以直接使用。
1.2 使用 mysqlslap 进行压力测试
mysqlslap 来自于 mysql 或 mariadb 包,测试的过程默认生成一个 mysqlslap 的 schema,生成测试表 t1,查询和插入测试数据,mysqlslap 库自动生成,如果已经存在则先删除。用 --only-print 来打印实际的测试过程,整个测试完成后不会在数据库中留下痕迹。
命令格式
mysqlslap [OPTIONS]#常用选项-?|--help #显示帮助-V|--version #显示版本信息-h|--host=name #服务器地址-p|--password[=name] #连接密码-P|--port=N #端口-a|--auto-generate-sql #自行生成测试表和数据,测试结束后会被删除-x|--number-char-cols=N #自动生成的测试表中包含多少个字符类型的列,默认1-y|--number-int-cols=N #自动生成的测试表中包含多少个数字类型的列,默认1-q|--query=sql #执行自定义SQL语句-S|--socket=name #指定连接使用的socket文件-c|--concurrency=N #表示并发量,即模拟多少个客户端同时执行select,可指定多个值#以逗号或者--delimiter参数指定值做为分隔符,如--concurrency=100,200,500-i|--iterations=N #测试执行的迭代次数,代表要在不同并发环境下,各自运行测试多少次-e|--engine=name #要测试的引擎,可以有多个,用分隔符隔开。例如--engines=myisam,innodb-C|--compress #如果服务器和客户端都支持压缩,则压缩信息--print-defaults #在终端输出默认选项和参数--only-print #只打印测试语句而不实际执行--commint=N #多少次DML后提交一次事务--detach=N #执行N条语句后断开重连--no-drop #测试完成后不删除测试库--create-schema=name #自定义测度库名称--number-of-queries=N #总的测试查询次数(并发客户数乘以每客户查询次数)--auto-generate-sql-add-autoincrement #在测试数据表中增加 auto_increment 列,从 mysql 5.1.18 版本开始支持--auto-generate-sql-load-type=name #测试类型 mixed|update|write|key,默认为mixed
#默认连接当前服务器,自行生成测试表,同时100个客户端并发执行[root@rocky86 ~]# mysqlslap -a -c100BenchmarkAverage number of seconds to run all queries: 0.512 seconds #平均查询时长Minimum number of seconds to run all queries: 0.512 seconds #查询中最小时长Maximum number of seconds to run all queries: 0.512 seconds #查询中最大时长Number of clients running queries: 100 #查询客户端数量Average number of queries per client: 0 #平均每个客户端查询次数,没有指定总的查询次数,值为0#迭代10次root@rocky86 ~]# mysqlslap -a -i 10 -c 100 -uroot -p123456BenchmarkAverage number of seconds to run all queries: 0.431 secondsMinimum number of seconds to run all queries: 0.363 secondsMaximum number of seconds to run all queries: 0.509 secondsNumber of clients running queries: 100Average number of queries per client: 0#50个客户端同时请求,myisam,innodb各请求200次[root@rocky86 ~]# mysqlslap -a -c 50 --number-of-queries 200 --engine=myisam,innodbBenchmarkRunning for engine myisamAverage number of seconds to run all queries: 0.933 secondsMinimum number of seconds to run all queries: 0.933 secondsMaximum number of seconds to run all queries: 0.933 secondsNumber of clients running queries: 50Average number of queries per client: 4BenchmarkRunning for engine innodbAverage number of seconds to run all queries: 0.365 secondsMinimum number of seconds to run all queries: 0.365 secondsMaximum number of seconds to run all queries: 0.365 secondsNumber of clients running queries: 50Average number of queries per client: 4mysql> show databases like '%slap%';Empty set (0.00 sec)#保留数据库[root@rocky86 ~]# mysqlslap -a --no-dropmysql> show databases like '%slap%';+-------------------+| Database (%slap%) |+-------------------+| mysqlslap |+-------------------+1 row in set (0.01 sec)
— END —

优网科技秉承"专业团队、品质服务" 的经营理念,诚信务实的服务了近万家客户,成为众多世界500强、集团和上市公司的长期合作伙伴!
优网科技成立于2001年,擅长网站建设、网站与各类业务系统深度整合,致力于提供完善的企业互联网解决方案。优网科技提供PC端网站建设(品牌展示型、官方门户型、营销商务型、电子商务型、信息门户型、微信小程序定制开发、移动端应用(手机站、APP开发)、微信定制开发(微信官网、微信商城、企业微信)等一系列互联网应用服务。
公安局备案号:

