首页域名资讯 正文

MySQL基线测试

2025-01-22 1 0条评论

前言

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

收集数据的重要

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

我使用的工具

  • tpcc-mysqlPercona的一款流行的开元的测试工具。(当然也可以使用sysbench,这里建议使用sysbench 5,有很多新的特性)。
  • orzdba阿里的一款监测MySQL相关性能的工具。
  • nmonIBM的一款搜集监测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 : 3306    tpcc45   root   root        45

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 python orzdba_report .py orzdba .log . 2016 02 21

查看生产的数据和图片

1 2 3 4 5 6 7 8 [ root @ centos7 tmp ] # ll pic_2016-02-21_21-26-57 total 2044 rw r r . 1 root root 262490 Feb 21 21 : 27 bytes .jpg rw r r . 1 root root 345998 Feb 21 21 : 26 Hit % .jpg rw r r . 1 root root 390717 Feb 21 21 : 27 innodb rows status .jpg rw r r . 1 root root 318976 Feb 21 21 : 26 orzdba_report .xls rw r r . 1 root root 445983 Feb 21 21 : 26 QPS TPS .jpg rw r r . 1 root root 317215 Feb 21 21 : 27 threads .jpg

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

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

tpcc_report.py源码:tpcc_report

1 python tpcc_report .py report_2016 02 21.log

查看生产的数据和图片

1 2 3 4 5 6 7 8 9 10 11 [ root @ centos7 tmp ] # ll tpcc_2016-02-21_22-05-51 total 1636 rw r r . 1 root root    12531 Feb 21 22 : 05 90 % respons_time .csv rw r r . 1 root root 446487 Feb 21 22 : 05 90 % respons_time .jpg rw r r . 1 root root    5345 Feb 21 22 : 05 late_count .csv rw r r . 1 root root 375425 Feb 21 22 : 05 late_count .jpg rw r r . 1 root root    12611 Feb 21 22 : 05 max_respons_time .csv rw r r . 1 root root 429396 Feb 21 22 : 05 max_respons_time .jpg rw r r . 1 root root    38722 Feb 21 22 : 05 report_2016 02 21.log rw r r . 1 root root    7865 Feb 21 22 : 05 test_count .csv rw r r . 1 root root 327258 Feb 21 22 : 05 test_count .jpg

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

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

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

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

还有其他很多信息如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

 

 

文章转载来自:trustauth.cn

文章版权及转载声明

本文作者:亿网 网址:https://edns.com/ask/post/150780.html 发布于 2025-01-22
文章转载或复制请以超链接形式并注明出处。