MySQL基准测试

什么是基准测试?

针对系统设计的一种压力测试

为什么要基准测试?

  1. 确定系统当前的性能,根据基准测试结果来分析优化效果
  2. 模拟比当前系统性能更高的负载,找出系统随压力增加可能遇到的扩展性瓶颈
  3. 规划未来的业务增长,提前评估硬件、网络相关资源的未来配置

基准测试的缺点

结果的有效性(真实压力比基准测试给予的压力要复杂得多,真实的压力是不可预期并且变化多端的)

基准测试的策略

  • 集成式  full-stack (测试整个应用系统)
  • 单组件式  single-component (单独测试MySQL)   极少使用

为什么选择  集成式策略  而不使用  单组件式策略

  1. 我们更关注的是整体系统的性能,而不仅仅是MySQL的性能,整体系统的基准测试包括Web服务器、应用代码、网络、数据库
  2. MySQL并不是任何情况下都是应用的瓶颈
  3. 整体的测试结果更接近应用的真实表现

测试指标

  • 吞吐量

吞吐量是指单位时间内的事务处理数。

针对在线事务处理(OLTP)的吞吐量,此指标适用于多用户交互式应用。

常用的测试单位是每秒事务数(TPS)或每分钟事务数(TPM)。

  • 响应时间(延迟)

测试任务所需的时间。

测试时间的单位是微秒、毫秒、秒或分钟。

以百分比响应时间为测试结果(例:如果95%的响应时间都是5ms,表示95%的任务都会在5ms内完成)

使用折线图、散点图更能直观的表现响应时间结果集的分布情况。

  • 并发性

并发性关注的是同时工作中的线程数或连接数。当并发性增加时,测量吞吐性是否下降,响应时间是否变长。

  • 可扩展性

系统压力的增加程度和系统的吞吐量呈线性增长(例如系统压力增加一倍的工作,理想情况下获得两倍的结果),当然大部分系统是无法达到如此线性扩展的,压力的不断增加带来的是吞吐量和性能越来越差。

基准测试工具

  • 集成式测试工具
    • Apache HTTP server benchmarking tool(用来测试HTTP请求每秒最多可以处理多少请求,但是只能针对单个URL进行测试)

    • http_load(基于Linux平台的、可指定多URL的、可按照时间比率的测试软件)
    • JMeter(Java应用程序,可以测试web应用、FTP、JDBC测试)

  • 单组件式测试工具
    • MySQL Benchmark Suite(MySQL发行的基准测试套件)

    • sysbench(多线程系统压测工具,根据影响数据库性能的各种因素评估系统性能)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值