通常,我们会出于以下几个目的对MySQL进行压力测试:

1、确认新的MySQL版本性能相比之前差异多大,比如从5.6变成5.7,或者从官方版本改成Percona分支版本;
2、确认新的服务器性能是否更高,能高多少,比如CPU升级了、阵列卡cache加大了、从机械盘换成SSD盘了;
3、确认一些新的参数调整后,对性能影响多少,比如 innodb_flush_log_at_trx_commit、sync_binlog 等参数;
4、确认即将上线的新业务对MySQL负载影响多少,是否能承载得住,是否需要对服务器进行扩容或升级配置;

针对上面这几种压测的目的,相应的测试方法也有所不同。

先说第四种,需要和线上业务结合起来,这时候就需要自行开发测试工具,或者利用 tcpcopy将线上实际用户请求导向测试环境,进行仿真模拟测试。

对于前三种,我们通常采用基准测试就可以。比较常用的MySQL基准压力测试工具有 tpcc-mysqlsysbenchmysqlslap 等几个。

关于压力测试工具的使用,可以查看我之前在ORACLE技术嘉年华上的分享:MySQL压力测试经验,在这里不再细说。

基于促进同行间的交流,统一MySQL压测标准,并且可以相互分享、对比、借鉴测试结果的目的。因此老叶特别发起MySQL压力测试基准值倡议。建议大家采用以下几种压力测试基准值。

  • 倡议:MySQL压力测试建议基准值(2015试行版)

也可以访问老叶网站(http://imysql.com)查看本文附件excel文档:压力测试基准建议及数据采集模板,里面已附带了压力测试相关的数据采集点建议,压测结果整理及自动生成对比图表。欢迎各位同行拍砖提出不同的见解和补充意见,先谢过大家。

关于压力测试的其他几个方面:

1、如何避免压测时受到缓存的影响
【老叶建议】有2点建议
a、填充测试数据比物理内存还要大,至少超过 innodb_buffer_pool_size 值,不能将数据全部装载到内存中,除非你的本意就想测试全内存状态下的MySQL性能。
b、每轮测试完成后,都重启mysqld实例,并且用下面的方法删除系统cache,释放swap(如果用到了swap的话),甚至可以重启整个OS。

[yejr@imysql.com]# sync  -- 将脏数据刷新到磁盘
[yejr@imysql.com]# echo 3 > /proc/sys/vm/drop_cache  -- 清除OS Cache
[yejr@imysql.com]# swapoff -a && swapon -a

2、如何尽可能体现线上业务真实特点
【老叶建议】有2点建议
a、其实上面已经说过了,就是自行开发测试工具或者利用 tcpcopy(或类似交换机的mirror功能) 将线上实际用户请求导向测试环境,进行仿真模拟测试。

b、利用 http_load 或 siege 工具模拟真实的用户请求URL进行压力测试,这方面我不是太专业,可以请教企业内部的压力测试同事。

3、压测结果如何解读
【老叶建议】压测结果除了tps/TpmC指标外,还应该关注压测期间的系统负载数据,尤其是iops、iowait、svcmtm、%util、每秒I/O字节数(I/O吞吐)、事务响应时间(tpcc-mysql/sysbench 打印的测试记录中均有)。另外,如果I/O设备能提供设备级 IOPS、读写延时 数据的话,也应该一并关注。

加入两次测试的tps/TpmC结果一样的话,那么谁的 事务响应时间、iowait、svctm、%util、读写延时 更低,就表示那个测试模式有更高的性能提升空间。

4、如何加快tpcc_load加载数据的效率
【老叶建议】tpcc_load其实是可以并行加载的,一方面是可以区分 ITEMS、WAREHOUSE、CUSTOMER、ORDERS 四个维度的数据并行加载。
另外,比如最终想加载1000个 warehouse的话,也可以分开成1000个并发并行加载的。看下 tpcc_load 工具的参数就知道了:

usage: tpcc_load [server] [DB] [user] [pass] [warehouse]
OR
tpcc_load [server] [DB] [user] [pass] [warehouse] [part] [min_wh] [max_wh]
* [part]: 1=ITEMS 2=WAREHOUSE 3=CUSTOMER 4=ORDERS

本来想自己写个并行加载脚本的,后来发现万能的github上已经有人做好了,我就直接拿来用了,这是项目链接 tpcc_load_parallel.sh,加载效率至少提升10倍以上。

延伸阅读:

  • tpcc-mysql安装、使用、结果解读

  • 发布基于percona的tpcc-mysql分支版本

关于MySQL的方方面面大家想了解什么,可以直接留言回复,我会从中选择一些热门话题进行分享。 同时希望大家多多点赞和转发,多一些阅读点赞数量是老叶继续努力分享的绝佳助力,谢谢大家 :)

最后打个广告,IT从业办公室人士专属铁观音茶叶微店上线了,访问:http://yuhongli.com 获得专属优惠

文章转自老叶茶馆公众号,原文链接:
https://mp.weixin.qq.com/s/lg2grNiOOcmcfTD4ARNYpA

老叶倡议:MySQL压力测试基准值相关推荐

  1. php mysql 压力测试_MySQL的性能基线收集及压力测试

    建立基线的作用: 计算机科学中,基线是项目储存库中每个工件版本在特定时期的一个"快照". 比如我们现在有并发事物,那么在某时刻发起一个事物会产生当前数据的快照,那么这个快照就相当理 ...

  2. mysql 雇员表脚本,mysql压力测试脚本实例_MySQL

    本文实例讲述了mysql压力测试的脚本,分享给大家供大家参考.具体如下: 创建表DEPT 代码如下: CREATE TABLE dept( /*部门表*/ deptno MEDIUMINT UNSIG ...

  3. mysql 5.5 压力测试,mysql 压力测试

    mysql 压力测试 sysbench支持的测试模式: 1.CPU运算性能 2.磁盘IO性能 3.调度程序性能 4.内存分配及传输速度 5.POSIX线程性能 6.数据库性能(OLTP基准测试) 目前 ...

  4. linux mysql 测试工具_LINUX系统下MySQL 压力测试工具super smack

    LINUX系统下MySQL 压力测试工具super smack 发布时间:2008-09-08 17:03:39   作者:佚名   我要评论 1. 源文件下载地址:http://vegan.net/ ...

  5. mysql压力测试教程_Mysqlslap MySQL压力测试工具 简单教程

    MySQL从5.1.4版开始带有一个压力测试工具mysqlslap,通过模拟多个并发客户端访问mysql来执行测试,使用起来非常的简单.通过mysqlslap –help可以获得可用的选项,这里列一些 ...

  6. 使用sysbench对mysql压力测试

    sysbench是一个模块化的.跨平台.多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况.关于这个项目的详细介绍请看:https://github.com/akopytov/sy ...

  7. mysql 压力测试知乎_MySQL查看SQL语句执行效率和mysql几种性能测试的工具

    网络中整理,记录下,朋友们应该用得到! Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看 SQL 语句的执行效 果,可以帮 ...

  8. MYSQL压力测试工具

    一.官方自带mysqlslap MySQL从5.1.4版开始带有一个压力测试工具mysqlslap,通过模拟多个并发客户端访问mysql来执行测试.      常用参数说明:   --auto-gen ...

  9. 【ORACLE技术嘉年华PPT】MySQL压力测试经验

    这是2013.11.18在第三届ORACLE技术嘉年华上的主题演讲PPT. 点击这里:本地下载PPT. --------------------------------------分割线------- ...

最新文章

  1. ubuntu as86
  2. python循环语句-python----循环语句及循环控制语句
  3. SAP UI5 初学者教程之十九 - SAP UI5 数据类型和复杂的数据绑定
  4. Mybatis构建sql语法
  5. Logback MDC
  6. python机器学习库sklearn——K最近邻、K最近邻分类、K最近邻回归
  7. 浅复制和深复制的区别?//浅拷贝和深拷贝
  8. TransparentImage、TransparentBlt - [Daliy APIs]
  9. 上传文件中文乱码问题修复
  10. 网管常用工具GHOST图解说明(转)
  11. 跳槽最大原因不是为钱,你信吗?
  12. 金蝶服务器修改ip,金蝶客户端修改服务器ip地址
  13. 本周大新闻|苹果首款MR没有主打卖点;Meta认为AI是AR OS的基础
  14. 谁征服了游戏,谁就征服了智能手机内容
  15. 1024程序员节最新福利之2018最全java资料集合
  16. c语言中MAXINE,13岁高定设计师二度亮相北京时装周 Maxine WangGrace Chen高定系列发布...
  17. 防洪决策指挥系统(Axure高保真原型)
  18. 第50次二级c语言真题,2017计算机二级MS-office操作题及答案
  19. 惠普打印机驱动安装教程,怎么安装打印机驱动
  20. 虚拟试衣:GAN的落地应用挑战之一

热门文章

  1. 一级造价工程师三个难点以及详细剖析
  2. 编译指令 #pragma optimize
  3. 复位策略:同步复位与异步复位
  4. 曾仕强 中国式管理 观后感
  5. 探索脑电情绪分类(EEG)项目的总结篇
  6. 机顶盒开发前奏---电脑adb无线连接机顶盒
  7. 角色和背景遮挡半透明效果的实现
  8. Unity技术-GameFramework文档系列(四)- 事件订阅
  9. 国务院授权网信办负责互联网信息内容管理
  10. python分治算法_算法-分治