高性能mysql学习 2 基准测试

2.基准测试

     ~~~~     基准测试是针对系统设计的一种压力测试,通常的目标是为了掌握系统的行为以及重现系统的某个状态,或者是做新硬件的可靠性测试。常用工具sysbench。

2.1基准测试的目的

基准测试的主要用途:

  1. 验证一些基于系统的假设是否符合实际情况
  2. 重现系统中的某些异常行为
  3. 测试系统当前的运行情况
  4. 模拟更高的系统负载
  5. 评估项目需要的硬件和网络等资源需求
  6. 测试应用适应可变环境的能力
  7. 测试不同的硬件、软件和西哦他嗯的配置
  8. 验证当前设备是否配置成功
  9. 创建单元测试套件

2.2策略

     ~~~~     基准测试有两种策略:

  1. 针对整个系统的整体测试(集成式、全栈式)
  2. 单独测试(单组件式)

选择整个系统测试:

  1. 测试整体性能,不需要单独考虑mysql的性能,关心的是整个应用。
  2. mysql并不总是瓶颈
  3. 只有整体测试,才能看出没部分的缓存行为
  4. 整体测试能直观的看出整体的性能,这是单独测试无法做到的

但是在最初阶段,我们并不可能,也不需要整体测试,只需要单独测试mysql,比如以下情况:

  1. 比较不同的schenma或查询的性能
  2. 针对应用中某个具体问题的测试
  3. 为了避免长期的基准测试,用一个短期的基准测试,来检测出某些调整后的效果

测试的指标

吞吐量
响应时间或者延时
并发量
可扩展性

2.3测试的方法

我们实现的基准测试最好包括一下特质

可重复性:可以重复执行的测试
可观测性:通过全方面的监控,及时了解和分析测试过程发生了什么
可展示性:相关人员可以直观明了的了解测试结果
真实性:测试结构反映了真实情况
可执行性:可以快速验证和分析问题

我们在实际过程中应该注意避免的错误

  1. 使用真实数据的子集而不是全集
  2. 使用错误的数据分布(随机数据通常无法模拟真实数据分布)
  3. 使用不真实的数据分布
  4. 在多用户场景中只做单用户测试
  5. 在单服务器上测试分布式
  6. 与真实用户行为不匹配
  7. 反复执行同一个查询
  8. 没有错误检测
  9. 忽略系统预热的过程(系统启动后,马上开始测试)
  10. 使用默认的服务器配置
  11. 测试时间过短

测试时长的选择:基准测试需要运行足够长的时间,这一点很重要,如果无法确定时间,尽量运行到系统稳定,同时注意系统嗯预热,一般IO读写在一段(比如三到四个小时,这个和硬件和网络资源有关)趋于稳定,但是写IO更长的时间内变化很大。一个简单的测试规划,就是等系统看起来至少稳定的时间等于系统预热的时间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值