MySQL 基准测试 什么是基准测试

everything1209 | | 访问(79)

  什么是基准测试

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

  基准测试是针对系统设置的一种压力测试,但是和压力测试还是有区别的

  基准测试:直接、简单,易于比较,用于评估服务器的处理能力

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

  压力测试:对真实的业务数据进行测试,获得真实系统所能承受的压力

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

  基准测试数据的实际用途

  1) 了解系统性能基准作为参照物(性能问题发生后的测试很难了解系统性能基准)

  2) 识别系统或环境的配置变更对性能响应带来的影响

  3) 为系统优化前后的性能提升/下降提供参考指标

  4) 观察系统的整体性能趋势与拐点发生,及早识别系统性能风险

  基准测试的目的

  建立MySQL服务器的性能基准线

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

  测试不同硬件、软件、操作系统配置(MySQL版本,磁盘配置等)

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

  对整个系统进行基准测试

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

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

  从系统入口进行测试(如网站web前端,手机APP前端)

  单独对MySQL进行基准测试

  优点:测试设计简单,所需耗费时间短

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

  MySQL基准测试的性能指标

  单位时间内所处理的事务数(TPS)

  单位时间内所处理的查询数(QPS)

  响应时间(平均响应时间,最小响应时间,最大响应时间,各时间所占百分比)

  并发量:同时处理的查询请求的数量(并发量不等于连接数)

  计划和设计基准测试

  对整个系统还是某一组件

  使用什么样的数据(比如使用生产环境的数据库备份)

  准备基准测试和数据收集脚本(CPU使用率、IO、网络流量、状态和计数器信息等)

  运行基准测试

  保存和分析基准测试结果

  基准测试中容易忽略的问题

  使用生产环境数据时,只使用了部分数据(应使用全部备份数据)

  在多用户场景中,只做了单用户的测试

  在单服务器上测试分布式应用(推荐使用相同架构进行测试)

  反复执行同一查询(容易缓存命中,无法反应真实查询性能)