一、衡量指标
TPS:Transactions Per Second (每秒传输的事务处理个数),这是指服务器每秒处理的事务数,支持事务的存储引擎如InnoDB等特有的一个性能指标 公式:TPS=(COM_COMMIT + COM_ROLLBACK) /UPTIME
QPS:Queries Per Second(每秒查询处理量) 同时适用于InnoDB于MyISAM引擎 公式:QPS=QUESTIONS/UPTIME
等待时间:执行sql等待返回结果之间的等待时间
二、MySqlSlap
是从MySql的5.1.4版开始官方提供的压力测试工具
1.创建schema、table、testdata;
2.运行负载测试,可以适用多个并发客户端链接
3.测试环境清理(删除创建的数据、表等、断开链接)
参数 作用
--create-schema=name 指定测试的数据库名,默认mysqlslap
--engine=name 创建测试表所使用的存储引擎,可以指定多个
--concurrency=N 模拟N个客户端并发执行。可以指定多个值,以逗号分割
--number-of-queries=N 总的测试查询次数(并发客户数*每客户查询次数),比如:并发是10,总次数100,那么10个客户 端各执行10个
--commit=N 执行N条DML后提交一次
--auto-generate-sql,a #自动生成测试表和数据,表示用mysqlslap工具自己生成的SQL脚本来测试并发压力
--auto-generate-sql-load- #测试语句的类型,代表要测试的环境是读操作还是写操作还是两者混合的
type=name #取值包括:read(scan tables),write(insert into tables),key(read primary keys)
update(update primary keys),or mixed(half inserts,half scanning selects),默认是:mixed
--auto-generate-sql-add- 对生成的表自动添加auto_increment列
auto-increment
--number-char-cols=name 自动生成的测试表中包含N个字符类型的列,默认1
--number-int-cols=name 自动生成的测试表中包含N个数字类型的列,默认1
--debug-info 打印内存和CPU的信息
参数目前知道这些,如果有其他的会继续更新
例如:
注意:
1.windows环境执行 去掉./ Linux 环境可以不去掉
2.在自己mysql安装目录的bin目录下cmd 窗口执行
1_1000个客户端,重复10次自动生成SQL语句,总过1000个查询
./myslqslap -uroot -proot1234% --concurrency=1000 --iterations 10 -a --auto-generate-sql-add-autoincrement
--engine=innodb --number-of-queries=1000
2_1,50,100,200个客户端,每一个测试3次,并打印内存,CPU信息
./mysqlslap -uroot --proot1234% --concurrency=1,50,100,200 --iterations=3 --number-char-cols=5 --
number-int-cols=5 --auto-generate-sql --auto-generate-sql-add-autoincrement --engine=myisam,innodb
--create-schema='enjoytest1' --debug-info
3_500个客户端,分别使用myisam,innodb两种存储引擎,比较效率
./mysqlslap --uroot -proot=1234% --concurrency=500 --iteations=3 --number-char-cols=5 --number-int-
cols=5 --auto-generate-sql --auto-generate-sql-add-autoincrement --engine=myisam,innodb --create
-schema='enjoytest1' --debug-info
本文详细介绍了MySQL的性能指标,如TPS和QPS,以及如何使用mysqldump工具进行数据库压力测试。通过具体参数设置,演示了如何自动生成SQL语句,测试读写操作和不同存储引擎的性能。
247

被折叠的 条评论
为什么被折叠?



