MYSQL基准测试

1、什么是基准测试

基准测试是一种测量和评估软件新能指标的活动,用于建立某个时刻的性能基准,以便当系统发生软硬件变化时重新进行基准测试以评估变化对性能的影响。基准测试时针对系统的一种压力测试。

压力测试需要针对不同主题,所使用的数据和查询也是真实用到的

基准测试可能不关心业务逻辑,所使用的查询和1业务的真实性可以和业务环境没关系

2、基准测试的目的

建立mysql服务器的性能基准线,确定当前mysql服务器运行情况

模拟比当前系统更高的负载,找出系统的扩展瓶颈,增加数据库并发,观察QPS,TPS变化,确定并发量与性能最优的关系。

测试不同的硬件、软件和操作系统配置

证明新的硬件设备是否配置正确

3、如何进行基准测试

(1)对整个系统进行基准测试

优点:能够测试整个系统的性能,包括web服务器缓存、数据库等,能反映出系统中各个组件接口间的性能问题,体现真实情况

缺点:测试复杂,消耗时间长

(2)单独对mysql进行测试

优点:测试简单,消耗时间短。

缺点:无法全面了解整个系统的新能基线

4、mysql基准测试的常见指标

TPS:单位时间内处理的事务数量

QPS:单位时间内处理的查询数量

响应时间:最大、最小相应时间,各个时间所占百分比

并发量:同时处理的查询请求的数量

5、基准测试工具

(1)mysql自带的工具:mysqlslap

特点:可以模拟服务器负载,并输出相关统计信息

            可以指定自动生成查询语句

常用参数:

--auto-generate-sql   由系统生成相应sql

--auto-generate-sql-add-autoincrement   在生成的表中添加自增id

--auto-generate-sql-load-type   指定测试中使用的查询类型【读写删除查询等】

--auto-generate-sql-write-number    指定初始化数据时初始化数据量

--concurrency  指定并发线程数量

--engine    指定要测试的表使用的存储引擎

--no-drop 指定不清理测试数据

--create-schema   指定测试的数据库

--iterations     指定测试运行的次数

--numbr-of-queries 指定每个线程执行的查询数量

--debug-info  指定输出额外的内存以及cpu统计信息

例1:测试100个并发线程,测试次数1次,自动生成sql脚本,读、写、更新混合测试,自增长字段,测试引擎是innodb,运行5000次sql

平均每个sql花费64.125s

100个客户端同时运行这些sql

每个客户端平均同时运行50次sql

例2:测试100个,500个,1000个并发线程,测试次数1次,自动生成sql脚本,读、写、更新混合测试,自增长字段,测试引擎是innodb,运行5000次sql,并且额外输出cpu和内存信息(我的mysql5.7版本不支持--debug-info这个参数,)

我的电脑性能不太行,处理1000个并发就不行了

(2)sysbench测试工具

安装地址:https://github.com/akopytov/sysbench/archive/0.5.zip

unzip sysbench-0.5.zip

cd sysbeench

./configure --with-mysql-includes=/usr/local/mysql/include/ --with-mysql-libs=/usr/local/mysql/lib/

make && make install

 

sysbench常用参数

--test 用于指定索要进行的测试类型。【fileio,cpu,memory,oltp】

--mysql-db 用于指定执行测试的数据库名

具体测试详细过程:https://www.cnblogs.com/conanwang/p/5910079.html

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值