
媒介
作为一名后台开辟,对数据库进行基准测试,以控制数据库的机能情况是异常须要的。本文介绍了MySQL基准测试的根本概念,以及应用sysbench对MySQL进行基准测试的具体办法。
文┞仿有疏漏之处,迎接批驳斧正。
一、基准测试简介
(1)command
数据库的基准测试是对数据库的机能指标进行定量的、可复现的、可比较的测试。
1、什么是基准测试
基准测试可以懂得为针对体系的一种压力测试。但基准测试不关怀营业逻辑,加倍简单、直接、易于测试,数据可以由对象生成,不请求真实;而压力测试一般推敲营业逻辑(如购物车营业),请求真实的数据。
2、基准测试的感化
对于多半Web应用,全部体系的瓶颈在于数据库;原因很简单:Web应用中的其他身分,例如收集带宽、负载均衡节点、应用办事器(包含CPU、内存、硬盘灯、连接数等)、缓存,都很轻易经由过程程度的扩大(俗称加机械)来实现机能的进步。而对于MySQL,因为数据一致性的请求,无法经由过程增长机械来分散向数据库写数据带来的压力;固然可以经由过程前置缓存(Redis等)、读写分别、分库分表来减轻压力,然则与体系其它组件的程度扩大比拟,受到了太多的限制。
3、基准测试的指标
(1)下载解压
常见的数据库指标包含:
- TPS/QPS:衡量吞吐量。
- 响应时光:包含平均响应时光、最小响应时光、最大年夜响应时光、时光百分比等,个中时光百分比参考意义较大年夜,如前95%的请求的最大年夜响应时光。。
- 并发量:同时处理的萌芽请求的数量。
4、基准测试的分类
对MySQL的基准测试,有如下两种思路:
(1)针半数个体系的基准测试:经由过程http请求进行测试,如经由过程浏览器、APP或postman等测试对象。该筹划的长处是可以或许更好的┞冯半数个体系,测试结不雅加倍精确;缺点是设计复杂实现艰苦。
(2)只针对MySQL的基准测试:长处和缺点与针半数个体系的测试正好相反。
在针对MySQL进行基准测试时,一般应用专门的对象进行,例如mysqlslap、sysbench等。个中,sysbench比mysqlslap更通用、更强大年夜,且更合适Innodb(因为模仿了很多Innodb的IO特点),下面介绍应用sysbench进行基准测试的办法。
而对数据库的基准测试的感化,就是分析在当前的设备下(包含硬件设备、OS、数据库设置等),数据库的机能表示,大年夜而找出MySQL的机能阈值,并根据实际体系的请求调剂设备。
二、sysbench
1、sysbench简介
本文重要介绍对数据库机能的测试。
2、sysbench安装
本文应用的情况时CentOS 6.5;在其他Linux体系上的安装办法大年夜同小异。MySQL版本是5.6。
- wget https://github.com/akopytov/sysbench/archive/1.0.zip -O "sysbench-1.0.zip"
- unzip sysbench-1.0.zip
- cd sysbench-1.0
(2)安装依附
- yum install automake libtool –y
安装之前,确保位于之前解压的sysbench目次中。
- ./autogen.sh
- ./configure
- export LD_LIBRARY_PATH=/usr/local/mysql/include #这里换成机械中mysql路径下的include
- make
- make install
(4)安装成功
- [root<a href=http://database.51cto.com/art/201710/"http://www.jobbole.com/members/q1531454480">@test</a> sysbench-1.0]# sysbench --version
- sysbench 1.0.9
5、测试结不雅
3、sysbench语法
履行sysbench –help,可以看到sysbench的具体应用办法。
sysbench的根本语法如下:
sysbench [options]… [testname] [command]
下面解释实际应用中,常用的参数和敕令。
(1)预备数据
command是sysbench要履行的敕令,包含prepare、run和cleanup,顾名思义,prepare是为测试提前预备数据,run是履行正式的测试,cleanup是在测试完成后对数据库进行清理。
(2)testname
testname指定了要进行的测试,在老版本的sysbench中,可以经由过程–test参数指定测试的脚本;而在新版本中,–test参数已经声明为放弃,可以不应用–test,而是直接指定脚本。
例如,如下两种办法效不雅是一样的:

网友点评
精彩导读
科技快报
品牌展示