MySQL基准测试及演示

1 什么是基准测试

基准测试:是一种测量和评估软件性能指标的活动,用于建立某个时刻的性能基准,以便当系统发生软硬件变化时重新进行基准测试以评估变化对性能的影响。基准测试是针对系统设置的一种压力测试,可以观察系统在不同压力下的行为,评估系统的容量,观察系统如何处理不同的数据。

但是基准测试和通常的压力测试还是有区别的:
(1)基准测试:直接、简单、使各个结果之间易于比较,测试数据基本上是由测试工具生成的,只能用于评估服务器的处理能力。
(2)压力测试:对真实的业务数据进行测试,获得真实系统所能承受的压力。因此基准测试只是一种简化了的压力测试。基准测试给系统带来的压力通常只能用来测量系统的一些性能,忽略了对系统的逻辑压力测试。

例如对一个网站进行压力测试,需要针对不同的主题进行,购物车流程的压力测试就需要按照购物流程的业务逻辑来设计测试要包含哪些业务流程,所使用的数据和查询也是在整个购物流程中需要真实用到的;而基准测试可能不关心业务逻辑,所使用的查询和业务环境没关系。例如对MySQL进行基本测试,可能就不会关心在MySQL上运行的系统的逻辑是什么,可以使用一个简单的查询通过多线程并发来衡量调优后的结果是否有效。

2 如何进行基准测试

2.1 基准测试的目的

  • 建立MySQL服务器的性能基准线,确定当前MySQL服务器运行情况
  • 模拟比当前系统更高的负载,以找出系统的扩展瓶颈,增加数据库并发,观察QPS,TPS变化,确定并发量与性能最优的关系
  • 测试不同的硬件、软件和操作系统配置
  • 证明新的硬件设备是否配置正确

2.2 基准测试的方法

基准测试有两个主要的策略:一是针对整个系统的整体测试,另外是单独测试MySQL。这两种策略也被称为集成式(full-stack)以及但组件式(single-component)基准测试。
(1)对整个系统进行基准测试:一般从系统入口进行测试(如网站Web前端,手机APP前端)。
优点:够测试整个系统,包括web服务器缓存、数据库等;能够反映出系统中各个组件接口间的性能问题体现真实性能状况
缺点:测试设计复杂,消耗的时间长
(2)单独对MySQL进行基准测试
优点:测试设计简单,所需耗费时间短
缺点:无法全面了解整个系统的性能基线

2.3 MySQL基准测试的常见指标

  • 单位时间内所处理的事务数(TPS)
  • 单位时间锁处理的查询数(QPS)
  • 响应时间(平均响应时间、最小响应时间、最大响应时间、各时间所占百分比):用于衡量测试任务所需的整体时间。
  • 并发量:同时处理的查询请求的数量(并发量不等于连接数),正在工作中的并发的操作数或同时工作的数量。

QPS:Queries Per Second,即每秒查询率,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。
TPS: Transactions Per Second,即事务数/秒,这个完整的事务包括了用户请求服务器,服务器内部处理,服务器返回信息给用户三个过程。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。
这两个指标常用来衡量系统的吞吐量(单位时间内的事务处理数)。

3 基准测试演示实例

3.1 基准测试的步骤

(1)计划和设计基准测试
基准测试的设计要尽可能简单,在这一步要明确基准测试的方式是哪一种,是对整个系统进行基准测试还是某个组件,如MySQL进行基准测试。还需要确定使用什么样的数据,如果希望基准测试能够反映出系统的实际情况,那么就最好使用生产中的实际数据和实际中的SQL来完成基准测试,如果要使用这种方式进行基准测试就需要注意最好使用生产环境中数据库的备份或者一定时间内实际产生的的sql日志来运行多线程的回放完成基准测试,这种方式相对比较负载,准备数据的时间比较多页比较复杂。如果只想知道某个参数的调整对数据库的影响的话就可以使用专门的测试工具来生成所需要的数据和SQL,以此来完成基准测试,这种方式更假简单。在这一步中还需要确定基准测试所要进行的时间和次数,通过多次测试得出的平均统计结果来反映系统的真实性能。
(2)准备基准测试及数据收集脚本
一般需要收集CPU使用率、IO、网络流量、状态与计数器信息等。

# 下面是一个简单的收集MySQL测试数据的shell脚本
INTERVAL=5  #运行间隔,每隔多少时间收集一下状态信息
PREFIX=/home/imooc/benchmarks/
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值