mysqlslap压力测试介绍

MySQLslap是一款压力测试工具,它会模拟多个客户端访问MySQL服务,记录各个阶段的消耗时间。

主要参数如下:

--host=host_name, -h host_name MySQL服务器所在的主机

--user=user_name, -u user_name 连接到MySQL服务器所使用的用户名

--password[=password], -p[password] 连接到MySQL服务器所使用的密码

--query=value, -q value 执行的SQL语句

--number-of-queries=N 每个客户端执行SQL语句的次数。需要注意的是,每条SQL之间的;都会算作一次,例如--query="use test;insert into t values(null)"就是2次。
mysqlslap --delimiter=";" --number-of-queries=10 --query="use test;insert into t values(null)" 这个语句会执行5次INSERT操作

--concurrency=N, -c N 模拟客户端的并行度

--iterations=N, -i N 执行压力测试的次数

--create-schema=value 在哪个用户下执行压力测试

--commit=N 执行多少条SQL进行提交,默认没有提交

--auto-generate-sql, -a 当没有指定SQL语句的时候,自动生成SQL语句

--number-char-cols=N, -x N 自动生成SQL语句中,VARCHAR字段的个数

--number-int-cols=N, -y N 自动生成SQL语句中,INT字段的个数

--auto-generate-sql-add-autoincrement 自动生成SQL语句所使用的表中,增加一个自增序列

--auto-generate-sql-execute-number=N 自动生成SQL语句的查询次数

--auto-generate-sql-guid-primary 增加一个GUID为基础的主键到自动生成的表中

--auto-generate-sql-load-type=type 指定压力测试的类型。可以设置的类型有read (表扫描)、write (插入语句)、key (读主键)、update (更新主键)或mixed(一半插入操作、一半查询操作),默认类型是mixed

--auto-generate-sql-secondary-indexes=N 指定自动生成的表中,非主键索引的数量,默认是没有创建非主键索引

--auto-generate-sql-unique-query-number=N 指定对自动生成的表执行查询的不同个数,默认值是10

--auto-generate-sql-unique-write-number=N 指定对自动生成的表执行写操作的不同个数,默认值是10

示例:
使用neo用户登录,模拟30个用户连接,共执行10万次请求

[root@localhost ~]# /software/bin/mysqlslap -h 192.168.78.141 --user=system --password=system --query="use fire;select * from test2" --number-of-queries=100000 -c 30 -i 10 --create-schema=neo
--执行结果
Benchmark
Average number of seconds to run all queries: 6.779 seconds
Minimum number of seconds to run all queries: 6.607 seconds
Maximum number of seconds to run all queries: 7.310 seconds
Number of clients running queries: 30
Average number of queries per client: 3333

使用自动生成SQL方式,模拟30个用户并发连接,执行10000次不同的查询,每执行10000条SQL语句进行事务提交

[root@localhost ~]# /software/bin/mysqlslap -h 192.168.78.141 --user=system --password=system --auto-generate-sql --auto-generate-sql-add-autoincrement --auto-generate-sql-execute-number=100000 --
commit=10000 --create-schema=neo
Benchmark
Average number of seconds to run all queries: 16.332 seconds
Minimum number of seconds to run all queries: 16.332 seconds
Maximum number of seconds to run all queries: 16.332 seconds
Number of clients running queries: 1
Average number of queries per client: 100000

当前标题:mysqlslap压力测试介绍
网页网址:http://hbruida.cn/article/ijigsp.html