作为一名靠山开拓,对数据库举办基准测试,以把握数据库的机能环境长短常须要的。本文先容了MySQL基准测试的根基观念,以及利用sysbench对MySQL举办基准测试的具体要领。
文章有疏漏之处,接待品评指正。
一、基准测试简介
1、什么是基准测试
数据库的基准测试是对数据库的机能指标举办定量的、可复现的、可比拟的测试。
基准测试与压力测试
基准测试可以领略为针对系统的一种压力测试。但基准测试不体贴业务逻辑,越发简朴、直接、易于测试,数据可以由东西生成,不要求真实;而压力测试一般思量业务逻辑(如购物车业务),要求真实的数据。
2、基准测试的浸染
对付大都Web应用,整个系统的瓶颈在于数据库;原因很简朴:Web应用中的其他因素,譬喻网络带宽、负载平衡节点、应用处事器(包罗CPU、内存、硬盘灯、毗连数等)、缓存,都很容易通进程度的扩展(俗称加呆板)来实现机能的提高。而对付MySQL,由于数据一致性的要求,无法通过增加呆板来分手向数据库写数据带来的压力;固然可以通过前置缓存(Redis等)、读写疏散、分库分表来减轻压力,可是与系统其它组件的程度扩展对比,受到了太多的限制。
而对数据库的基准测试的浸染,就是阐明在当前的设置下(包罗硬件设置、OS、数据库配置等),数据库的机能表示,从而找出MySQL的机能阈值,并按照实际系统的要求调解设置。
3、基准测试的指标
常见的数据库指标包罗:
4、基准测试的分类
对MySQL的基准测试,有如下两种思路:
(1)针对整个系统的基准测试:通过http请求举办测试,如通过欣赏器、APP或postman等测试东西。该方案的利益是可以或许更好的针对整个系统,测试功效越发精确;缺点是设计巨大实现坚苦。
(2)只针对MySQL的基准测试:利益和缺点与针对整个系统的测试刚好相反。
在针对MySQL举办基准测试时,一般利用专门的东西举办,昆山软件开发,譬喻mysqlslap、sysbench等。个中,sysbench比mysqlslap更通用、更强大,且更适合Innodb(因为模仿了很多Innodb的IO特性),下面先容利用sysbench举办基准测试的要领。
二、sysbench
1、sysbench简介
sysbench是跨平台的基准测试东西,支持多线程,支持多种数据库;主要包罗以下几种测试:
本文主要先容对数据库机能的测试。
2、sysbench安装
本文利用的情况时CentOS 6.5;在其他Linux系统上的安装要领大同小异。MySQL版本是5.6。
(1)下载解压
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
(3)安装
安装之前,确保位于之前解压的sysbench目次中。
./autogen.sh ./configure export LD_LIBRARY_PATH=/usr/local/mysql/include #这里换成呆板中mysql路径下的include make make install
(4)安装乐成
[root@test sysbench-1.0]# sysbench --version sysbench 1.0.9
3、sysbench语法
执行sysbench –help,可以看到sysbench的具体利用要领。
sysbench的根基语法如下:
sysbench [options]… [testname] [command]
下面说明实际利用中,常用的参数和呼吁。
(1)command
command是sysbench要执行的呼吁,包罗prepare、run和cleanup,顾名思义,prepare是为测试提前筹备数据,run是执行正式的测试,cleanup是在测试完成后对数据库举办清理。
(2)testname
testname指定了要举办的测试,在老版本的sysbench中,可以通过–test参数指定测试的剧本;而在新版本中,–test参数已经声明为废弃,可以不利用–test,而是直接指定剧本。
譬喻,如下两种要领结果是一样的:
sysbench --test=./tests/include/oltp_legacy/oltp.lua sysbench ./tests/include/oltp_legacy/oltp.lua
测试时利用的剧本为lua剧本,可以利用sysbench自带剧本,也可以本身开拓。对付大大都应用,利用sysbench自带的剧本就足够了。差异版本的sysbench中,lua剧本的位置大概差异,可以本身在sysbench路径下利用find呼吁搜索oltp.lua。P.S.:大大都数据处事都是oltp范例的,假如你不相识什么是oltp,那么或许率你的数据处事就是oltp范例的。
(3)options
sysbench的参数有许多,个中较量常用的包罗: