MySQL基线测试概念_MySQL基线测试

前言

其实MySQL基线测试已经不是什么新鲜的话题了,这应该是作为DBA的基本的技能了。大家都知道使用一些工具去做(sysbench、tpcc-mysql、tpc-c等等)。本篇文章不是告诉你相关的工具具体怎么用,更不是告诉你工具输出的报告应该如何去看,这些在现在的互联网中一搜一大把。本篇文章告诉你的是一个流程,做一个测试我们需要做一些什么、如何提取我们需要的信息,并生成可视化报告。在之后的监控我们就可以使用输出的报告作为基准,从而来定位问题和瓶颈。

收集数据的重要

测试最重要的就是在测试过程中收集的数据,各个方面的数据越多对以后的参照对比越有利。比如收集磁盘IO、CPU、网络情况等等。如果少收集了相关资源数据很可能在以后就不知道相关资源的瓶颈。如你没有收集IO资源的使用变化情况。你就不知道你的MySQL的写能力到达什么时候是个瓶颈,就不知道要如何去预防了。

我使用的工具

tpcc-mysql:Percona的一款流行的开元的测试工具。(当然也可以使用sysbench,这里建议使用sysbench 5,有很多新的特性)。

orzdba:阿里的一款监测MySQL相关性能的工具。

nmon:IBM的一款搜集监测IO、CPU等信息的工具。

nmon analyser:和nmon配套使用的分析工具。

tpcc_report.py:笔者使用python编写的,用来分析tpcc-mysql测试完输出的信息并输出报表。

orzdba_report.py:笔者使用python编写的,用来分析orzdba监控输出的数据并生成报表。

感谢那些为开源做贡献的团队们。向他们致敬!  ^_^

由于笔者编写的Python脚本使用到了pandas和matplotlib,所以使用之前需要安装好这些模块。笔者为了方便没有去安装这些模块,而是使用Canopy这个免费版的集成套件,只要安装了他就能使用相关模块了。

软件版本:

软件

版本

说明

Canopy

1.6.1-rh5-64

Python

2.7.10

Canopy中自带的

测试步骤

1、使用tpcc-mysql加载数据到MySQL中

1

2

3

# 创建45个数据仓库并填充数据

##          |hostname:port| |dbname| |user| |password| |WAREHOUSES|

./tpcc_load 127.0.0.1:3306tpcc45rootroot45

2、运行orzdba 收集mysql相关性能数据,生成log.xxxx-xx-xx收集数据文件

这边我对orzdba稍微做了些修改,为了获得更加连续的数据

修改 193 行为 if ( $mycount%100000000 == 0 ) {

1

2

3

./orzdba –mysql –innodb_rows –C 500000 –i 5 \

–S /u01/tmp/mysql.sock \

–L /tmp/orzdba.log –logfile_by_day &

3、运行nmon收集相关数据,生成centos7_xxxxxx_xxxx.nmon收集数据文件

1

./nmon_x86_64_centos7 –s5 –c7200 –f –m /tmp/

4、运行tpcc-mysql进行测试

1

2

3

4

5

6

7

8

9

10

./tpcc_start –h127.0.0.1 \

–P3306\

–dtpcc45\

–uroot\

–proot\

–w45\

–c32\

–r30\

–l3600\

–ftpcc45_20150220 > /tmp/report_2016–02–21.log

等待tpcc-mysql运行完以后我们就开始分析收集的数据来生成相关的报表了。

5、使用orzdba_report.py分析orzdba.log.xxxx-xx-xx文件生成报表

orzdba_report.py源码:orzdba_report

1

pythonorzdba_report.py orzdba.log.2016–02–21

查看生产的数据和图片

1

2

3

4

5

6

7

8

[root@centos7tmp]# ll pic_2016-02-21_21-26-57

total 2044

–rw–r—r—. 1 rootroot 262490 Feb 21 21:27 ——–bytes——.jpg

–rw–r—r—. 1 rootroot 345998 Feb 21 21:26 –Hit%–.jpg

–rw–r—r—. 1 rootroot 390717 Feb 21 21:27 —–innodbrowsstatus—–.jpg

–rw–r—r—. 1 rootroot 318976 Feb 21 21:26 orzdba_report.xls

–rw–r—r—. 1 rootroot 445983 Feb 21 21:26 –QPS– –TPS.jpg

–rw–r—r—. 1 rootroot 317215 Feb 21 21:27 ———threads———.jpg

使用图形工具打开’—innodb rows status—.jpg’分析图片文件

12b3d8556d7ac2a48f1caa6b2f0ee763.png

6、使用tpcc_report.py分析report_xxxx-xx-xx.log生产报表和图片

tpcc_report.py源码:tpcc_report

1

pythontpcc_report.py report_2016–02–21.log

查看生产的数据和图片

1

2

3

4

5

6

7

8

9

10

11

[root@centos7tmp]# ll tpcc_2016-02-21_22-05-51

total 1636

–rw–r—r—. 1 rootroot12531 Feb 21 22:05 90%respons_time.csv

–rw–r—r—. 1 rootroot 446487 Feb 21 22:05 90%respons_time.jpg

–rw–r—r—. 1 rootroot5345 Feb 21 22:05 late_count.csv

–rw–r—r—. 1 rootroot 375425 Feb 21 22:05 late_count.jpg

–rw–r—r—. 1 rootroot12611 Feb 21 22:05 max_respons_time.csv

–rw–r—r—. 1 rootroot 429396 Feb 21 22:05 max_respons_time.jpg

–rw–r—r—. 1 rootroot38722 Feb 21 22:05 report_2016–02–21.log

–rw–r—r—. 1 rootroot7865 Feb 21 22:05 test_count.csv

–rw–r—r—. 1 rootroot 327258 Feb 21 22:05 test_count.jpg

使用图形工具打开’ test_count.jpg ‘分析图片文件

97a65f7331bb37036dfa73b736a31d5d.png

7、使用nmon_analyser来分析centos7_xxxxxx_xxxx.nmon生产报表

注意:之前使用WPS打开nmon analyser v47.xlsm文件来分析的时候会报错,因此一直以来我就使用office2007了。不知道现在WPS能不能用了。

nmon analyser v47.xlsm分析出一个excel文件这个文件里面有分析的数据和图表。如下显示的是磁盘IO相关信息:

74823a35c756d3d92157c3f8e2db4ebb.png

70ff48e0f33b7a6dfe72d1d8a247f2e8.png

还有其他很多信息如CPU、NET等等的这边就不一一列举了。

结束语

MySQL基线测试并不是只是光光使用一下测试工具就行的了。重要的还是要能收集到竟可能多的信息。其实,只在MySQL层面做基线测试还是远远不够的。还应该在应用程序的层面来测试,从而查看MySQL的性能表现等等。

这边只是介绍了一下整个基线测试的基本流程,具体工具的使用还需要大家自行去了解了。

nmon相关文件:nmon_analyser_v47 、centos7_160221_2008、centos7_160221_2008.nmon(xls)

orzdba相关文件:orzdba.log、 pic_2016-02-21_21-26-57.tar

tpcc-mysql相关文件:report_2016-02-21、 tpcc_2016-02-21_22-05-51.tar

文章转载来自:ttlsa.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值