用mysqlslap进行mysql压力测试

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

 

mysqlslap是一个mysql官方提供的压力测试工具,通过模拟多个并发客户端访问mysql来执行测试,使用起来非常的简单。通过mysqlslap--help可以获得可用的选项。
下面我们就来看看一些比较重要的参数:
--defaults-file,配置文件存放位置
--create-schema,测试的schema,MySQL中schema也就是database
--concurrency,并发数
--engines,测试引擎,可以有多个,用分隔符隔开。
--iterations,迭代的实验次数
--socket,socket,文件位置
--debug-info,打印内存和CPU的信息
--only-print,只打印测试语句而不实际执行
--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列的数量
--query=name,使用自定义脚本执行测试,例如可以调用自定义的一个存储过程或者sql语句来执行测试。

 

 


测试例子如下:[root@localhost~]#
/usr/local/mysql/bin/mysqlslap--defaults-file=/etc/my.cnf--concurrency=200--iterations=1--number-int-cols=1--auto-generate-sql--auto-generate-sql-load-type=write--engine=myisam,innodb--number-of-queries=200-S/tmp/mysql.sock--debug-info-uroot-p123Benchmark
Runningforenginemyisam
Averagenumberofsecondstorunallqueries:0.087secondsMinimumnumberofsecondstorunallqueries:0.087secondsMaximumnumberofsecondstorunallqueries:0.087secondsNumberofclientsrunningqueries:200Averagenumberofqueriesperclient:1Benchmark
Runningforengineinnodb
Averagenumberofsecondstorunallqueries:0.551secondsMinimumnumberofsecondstorunallqueries:0.551secondsMaximumnumberofsecondstorunallqueries:0.551secondsNumberofclientsrunningqueries:200Averagenumberofqueriesperclient:1Usertime0.03,Systemtime0.05
Maximumresidentsetsize0,Integralresidentsetsize0Non-physicalpagefaults2826,Physicalpagefaults0,Swaps0Blocksin0out0,Messagesin0out0,Signals0
Voluntarycontextswitches3340,Involuntarycontextswitches96

对于INNODB引擎,200个客户端同时运行这些SQL语句平均要花0.551秒。相应的MYISAM为0.087秒,测试结果也很简明,就不多少说了。指定数据库的测试:
--create-schema,指定数据库名称
--query,指定SQL语句,可以定位到某个包含SQL的文件[root@localhost~]#/usr/local/mysql/bin/mysqlslap
--defaults-file=/etc/my.cnf--concurrency=50--iterations=1--create-schema=test--query=/root/test.sql-S/tmp/mysql.sock-uroot-p123Benchmark
Averagenumberofsecondstorunallqueries:0.021secondsMinimumnumberofsecondstorunallqueries:0.021secondsMaximumnumberofsecondstorunallqueries:0.021secondsNumberofclientsrunningqueries:50Averagenumberofqueriesperclient:1

mysqlslap --defaults-file=/usr/local/mysql-maria/my.cnf --concurrency=25,50,100 --iterations=1 --create-schema='t_girl' --query='call sp_get_article(2,10,1);' --number-of-queries=5000 --debug-info -uroot -p -S/tmp/mysql50.sock

 

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
关系型数据库 MySQL Java
Mysql专栏 - 线上调优与压力测试
Mysql专栏 - 线上调优与压力测试
71 0
|
3月前
|
关系型数据库 MySQL Shell
MySQL【实践 01】Linux 环境 MySQL 数据库备份 shell 脚本(脚本源码及说明+定时任务配置+数据库恢复测试)粘贴可以
MySQL【实践 01】Linux 环境 MySQL 数据库备份 shell 脚本(脚本源码及说明+定时任务配置+数据库恢复测试)粘贴可以
40 0
|
3月前
|
存储 关系型数据库 MySQL
MySQL批量插入测试数据的几种方式
MySQL批量插入测试数据的几种方式
48 0
MySQL批量插入测试数据的几种方式
|
4月前
|
关系型数据库 MySQL 测试技术
软件测试|MySQL BETWEEN AND:范围查询详解
软件测试|MySQL BETWEEN AND:范围查询详解
198 0
|
4月前
|
关系型数据库 MySQL 测试技术
软件测试|MySQL LIKE:深入了解模糊查询
软件测试|MySQL LIKE:深入了解模糊查询
31 0
|
4月前
|
关系型数据库 MySQL 测试技术
软件测试|MySQL WHERE条件查询详解:筛选出需要的数据
软件测试|MySQL WHERE条件查询详解:筛选出需要的数据
25 0
|
4月前
|
关系型数据库 MySQL 测试技术
软件测试|MySQL ORDER BY详解:排序查询的利器
软件测试|MySQL ORDER BY详解:排序查询的利器
190 0
|
4月前
|
数据采集 关系型数据库 MySQL
软件测试|MySQL DISTINCT关键字过滤重复数据
软件测试|MySQL DISTINCT关键字过滤重复数据
26 0
软件测试|MySQL DISTINCT关键字过滤重复数据
|
4月前
|
SQL 关系型数据库 MySQL
软件测试|MySQL SELECT语句的详细使用
软件测试|MySQL SELECT语句的详细使用
39 0
|
4月前
|
关系型数据库 MySQL 测试技术
软件测试|MySQL逻辑运算符使用详解
软件测试|MySQL逻辑运算符使用详解
25 0