iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >如何理解MySQL基准测试和sysbench工具
  • 382
分享到

如何理解MySQL基准测试和sysbench工具

2024-04-02 19:04:59 382人浏览 泡泡鱼
摘要

如何理解Mysql基准测试和sysbench工具,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。前言作为一名后台开发,对数据库进行基准测试,

如何理解Mysql基准测试和sysbench工具,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

前言

作为一名后台开发,对数据库进行基准测试,以掌握数据库的性能情况是非常必要的。小编介绍了mysql基准测试的基本概念,以及使用sysbench对Mysql进行基准测试的详细方法。

一、基准测试简介

1、什么是基准测试

数据库的基准测试是对数据库的性能指标进行定量的、可复现的、可对比的测试。

基准测试与压力测试

基准测试可以理解为针对系统的一种压力测试。但基准测试不关心业务逻辑,更加简单、直接、易于测试,数据可以由工具生成,不要求真实;而压力测试一般考虑业务逻辑(如购物车业务),要求真实的数据。

2、基准测试的作用

对于多数WEB应用,整个系统的瓶颈在于数据库;原因很简单:Web应用中的其他因素,例如网络带宽、负载均衡节点、应用服务器(包括CPU、内存、硬盘灯、连接数等)、缓存,都很容易通过水平的扩展(俗称加机器)来实现性能的提高。而对于MySQL,由于数据一致性的要求,无法通过增加机器来分散向数据库写数据带来的压力;虽然可以通过前置缓存(Redis等)、读写分离、分库分表来减轻压力,但是与系统其它组件的水平扩展相比,受到了太多的限制。

而对数据库的基准测试的作用,就是分析在当前的配置下(包括硬件配置、OS、数据库设置等),数据库的性能表现,从而找出MySQL的性能阈值,并根据实际系统的要求调整配置。

3、基准测试的指标

常见的数据库指标包括:

  • TPS/QPS:衡量吞吐量。

  • 响应时间:包括平均响应时间、最小响应时间、***响应时间、时间百分比等,其中时间百分比参考意义较大,如前95%的请求的***响应时间。。

  • 并发量:同时处理的查询请求的数量。

4、基准测试的分类

对MySQL的基准测试,有如下两种思路:

(1)针对整个系统的基准测试:通过Http请求进行测试,如通过浏览器、APP或postman等测试工具。该方案的优点是能够更好的针对整个系统,测试结果更加准确;缺点是设计复杂实现困难。

(2)只针对MySQL的基准测试:优点和缺点与针对整个系统的测试恰好相反。

在针对MySQL进行基准测试时,一般使用专门的工具进行,例如mysqlslap、sysbench等。其中,sysbench比mysqlslap更通用、更强大,且更适合Innodb(因为模拟了许多Innodb的io特性),下面介绍使用sysbench进行基准测试的方法。

二、sysbench

1、sysbench简介

sysbench是跨平台的基准测试工具,支持多线程,支持多种数据库;主要包括以下几种测试:

  • cpu性能

  • 磁盘io性能

  • 调度程序性能

  • 内存分配及传输速度

  • POSIX线程性能

  • 数据库性能(OLTP基准测试)

本文主要介绍对数据库性能的测试。

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<a href="http://www.jobbole.com/members/q1531454480">@test</a> sysbench-1.0]# sysbench --version sysbench 1.0.9

3、sysbench语法

执行sysbench &ndash;help,可以看到sysbench的详细使用方法。

sysbench的基本语法如下:

sysbench [options]&hellip; [testname] [command]

下面说明实际使用中,常用的参数和命令。

(1)command

command是sysbench要执行的命令,包括prepare、run和cleanup,顾名思义,prepare是为测试提前准备数据,run是执行正式的测试,cleanup是在测试完成后对数据库进行清理。

(2)testname

testname指定了要进行的测试,在老版本的sysbench中,可以通过&ndash;test参数指定测试的脚本;而在新版本中,&ndash;test参数已经声明为废弃,可以不使用&ndash;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的参数有很多,其中比较常用的包括:

MySQL连接信息参数

  • &ndash;mysql-host:MySQL服务器主机名,默认localhost;如果在本机上使用localhost报错,提示无法连接MySQL服务器,改成本机的IP地址应该就可以了。

  • &ndash;mysql-port:MySQL服务器端口,默认3306

  • &ndash;mysql-user:用户名

  • &ndash;mysql-passWord:密码

MySQL执行参数

  • &ndash;oltp-test-mode:执行模式,包括simple、nontrx和complex,默认是complex。simple模式下只测试简单的查询;nontrx不仅测试查询,还测试插入更新等,但是不使用事务;complex模式下测试最全面,会测试增删改查,而且会使用事务。可以根据自己的需要选择测试模式。

  • &ndash;oltp-tables-count:测试的表数量,根据实际情况选择

  • &ndash;oltp-table-size:测试的表的大小,根据实际情况选择

  • &ndash;threads:客户端的并发连接数

  • &ndash;time:测试执行的时间,单位是秒,该值不要太短,可以选择120

  • &ndash;report-interval:生成报告的时间间隔,单位是秒,如10

4、sysbench使用举例

在执行sysbench时,应该注意:

(1)尽量不要在MySQL服务器运行的机器上进行测试,一方面可能无法体现网络(哪怕是局域网)的影响,另一方面,sysbench的运行(尤其是设置的并发数较高时)会影响MySQL服务器的表现。

(2)可以逐步增加客户端的并发连接数(&ndash;thread参数),观察在连接数不同情况下,MySQL服务器的表现;如分别设置为10,20,50,100等。

(3)一般执行模式选择complex即可,如果需要特别测试服务器只读性能,或不使用事务时的性能,可以选择simple模式或nontrx模式。

(4)如果连续进行多次测试,注意确保之前测试的数据已经被清理干净。

下面是sysbench使用的一个例子:

(1)准备数据

sysbench ./tests/include/oltp_legacy/oltp.lua --mysql-host=192.168.65.66 --mysql-port=3306 --mysql-user=root --mysql-password=123456 --oltp-test-mode=complex --oltp-tables-count=10 --oltp-table-size=100000 --threads=10 --time=120 --report-interval=10 prepare

其中,执行模式为complex,使用了10个表,每个表有10万条数据,客户端的并发线程数为10,执行时间为120秒,每10秒生成一次报告。

如何理解MySQL基准测试和sysbench工具

(2)执行测试

将测试结果导出到文件中,便于后续分析。

sysbench ./tests/include/oltp_legacy/oltp.lua --mysql-host=192.168.65.66 --mysql-port=3306 --mysql-user=root --mysql-password=123456 --oltp-test-mode=complex --oltp-tables-count=10 --oltp-table-size=100000 --threads=10 --time=120 --report-interval=10 run >> /home/test/mysysbench.log

(3)清理数据

执行完测试后,清理数据,否则后面的测试会受到影响。

sysbench ./tests/include/oltp_legacy/oltp.lua --mysql-host=192.168.65.66 --mysql-port=3306 --mysql-user=root --mysql-password=123456 cleanup

5、测试结果

测试结束后,查看输出文件,如下所示:

如何理解MySQL基准测试和sysbench工具

其中,对于我们比较重要的信息包括:

queries:查询总数及qps

transactions:事务总数及tps

Latency-95th  percentile:前95%的请求的***响应时间,本例中是344毫秒,这个延迟非常大,是因为我用的MySQL服务器性能很差;在正式环境中这个数值是绝对不能接受的。

三、建议

下面是使用sysbench的一些建议。

1、在开始测试之前,应该首先明确:应采用针对整个系统的基准测试,还是针对MySQL的基准测试,还是二者都需要。

2、如果需要针对MySQL的基准测试,那么还需要明确精度方面的要求:是否需要使用生产环境的真实数据,还是使用工具生成也可以;前者实施起来更加繁琐。如果要使用真实数据,尽量使用全部数据,而不是部分数据。

3、基准测试要进行多次才有意义。

4、测试时需要注意主从同步的状态。

5、测试必须模拟多线程的情况,单线程情况不但无法模拟真实的效率,也无法模拟阻塞甚至死情况。

关于如何理解MySQL基准测试和sysbench工具问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网数据库频道了解更多相关知识。

您可能感兴趣的文档:

--结束END--

本文标题: 如何理解MySQL基准测试和sysbench工具

本文链接: https://www.lsjlt.com/news/67637.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何理解MySQL基准测试和sysbench工具
    如何理解MySQL基准测试和sysbench工具,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。前言作为一名后台开发,对数据库进行基准测试,...
    99+
    2024-04-02
  • MySQL如何使用sysbench做OLTP基准测试
    这篇文章给大家分享的是有关MySQL如何使用sysbench做OLTP基准测试的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 一、 安装① 下载源码...
    99+
    2024-04-02
  • Mysql常用基准测试工具是什么
    小编给大家分享一下Mysql常用基准测试工具是什么,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!mysqlslap常用参数说明–auto-generate-sql 由系统自动生成sql脚本...
    99+
    2024-04-02
  • MySQL基准压力测试工具MySQLSlap怎么用
    小编给大家分享一下MySQL基准压力测试工具MySQLSlap怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!常用的解释:[...
    99+
    2024-04-02
  • MySQL性能压测工具SysBench详解(非常详细)
    概述 背景 最近需要给不同的客户部署数据库,各自的预算不一样,购买的服务器配置也不一样。那么我们就需要对其数据库的支撑能力进行一定测试,以保证满足业务真是的需要 数据库性能指标 指标英文含义说明QPSQuery Per Second数据库每...
    99+
    2023-08-18
    mysql 数据库 服务器
  • MySQL 基准测试工具tpcc-mysql使用手册及报告分析
    〇 下载安装 git clone https://github.com/Percona-Lab/tpcc-mysql.git cd tpcc-mysql/sr...
    99+
    2024-04-02
  • 如何使用sysbench测试Mysql性能
    这篇文章主要介绍了如何使用sysbench测试Mysql性能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 s...
    99+
    2024-04-02
  • 如何理解集成测试工具Tessy
    如何理解集成测试工具Tessy,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。        Tessy是一个专门针对嵌入...
    99+
    2023-06-03
  • 如何在安装与使用sysbench数据库性能测试工具
    这篇文章将为大家详细讲解有关如何在安装与使用sysbench数据库性能测试工具,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.简介和安装sysbench是...
    99+
    2024-04-02
  • Golang 单元测试和基准测试实例详解
    目录前言Go 单元测试单元测试覆盖率基准测试前言 多人协作的项目里,要保证代码的质量,自然离不开单元测试。开发完一个功能后肯定要对所写的代码进行测试,测试没有问题之后再合并到代码库供...
    99+
    2024-04-02
  • 通过sysbench工具实现MySQL数据库的性能测试的方法
    1.背景  sysbench是一款压力测试工具,可以测试系统的硬件性能,也可以用来对数据库进行基准测试。sysbench 支持的测试有CPU运算性能测试、内存分配及传输速度测试、磁盘IO性能测试、...
    99+
    2024-04-02
  • Go语言工程实践单元测试基准测试示例详解
    目录背景测试单元测试演示覆盖率依赖文件处理Mock基准测试小结背景 测试的出现是为了避免项目中出现重大事故 测试是避免事故的最后一道屏障 测试 单元测试的覆盖率在一定程度上而言,...
    99+
    2023-02-05
    Go语言单元测试基准测试 Go语言测试
  • cypress测试工具如何使用
    本篇内容主要讲解“cypress测试工具如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“cypress测试工具如何使用”吧!一、什么是cypressCypress称自己是下一代的web前端...
    99+
    2023-06-30
  • nosql redis数据库压力测试基准工具redis-benchmark怎么用
    这篇文章将为大家详细讲解有关nosql redis数据库压力测试基准工具redis-benchmark怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 ...
    99+
    2024-04-02
  • 在AmazonAurora中如何实现数据库的性能测试和基准测试
    在Amazon Aurora中实现数据库的性能测试和基准测试可以通过以下步骤进行: 定义测试目标:确定要测试的性能指标,例如吞吐...
    99+
    2024-04-09
    AmazonAurora
  • 如何理解WEB自动化测试工具seleniuml录制器
    这期内容当中小编将会给大家带来有关如何理解WEB自动化测试工具seleniuml录制器,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。selenium录制器是最近刚流行起来的一个WEB自动化测试工具,由多测...
    99+
    2023-06-04
  • MySQL压力测试中如何定制sysbench的Lua模板
    本篇内容介绍了“MySQL压力测试中如何定制sysbench的Lua模板”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能...
    99+
    2024-04-02
  • iOS testFlight测试工具如何使用
    使用iOS TestFlight测试工具的步骤如下:1. 开发者在App Store Connect中创建App的测试版本。在App...
    99+
    2023-09-29
    iOS
  • 如何使用Postman和SoapUI工具测试WebService接口
    这篇文章主要讲解了“如何使用Postman和SoapUI工具测试WebService接口”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用Postman和SoapUI工具测试WebSer...
    99+
    2023-06-30
  • 如何使用Apache压力测试工具
    这篇文章将为大家详细讲解有关如何使用Apache压力测试工具,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。下载进入apache官网 http://httpd.apache.org/ 下载apache即可启...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作