MYSQL——压测

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、MYSQL压测

常用的mysql压测工具有两个

1、Mysql自带的压力测试工具——Mysqlslap

2、第三方工具sysbench进行压力测试

二、MySQL自带的压力测试工具——Mysqlslap

mysqlslap是mysql自带的基准测试工具,该工具查询数据,语法简单,灵活容易使用.该工具可以模拟多个客户端同时并发的向服务器发出查询更新,给出了性能测试数据而且提供了多种引擎的性能比较。mysqlslap为mysql性能优化前后提供了直观的验证依据,系统运维和DBA人员应该掌握一些常见的压力测试工具,才能准确的掌握线上数据库支撑的用户流量上限及其抗压性等问题。

(一)、更改其默认的最大连接数

再对mysql进行压力测试之前,需要更改其默认的最大连接数,

vim /etc/my.cnf
在这里插入图片描述
systemctl restart mysqld.service
进入mysql中查看最大连接数

在这里插入图片描述

进行压力测试

注意:mysqlslap好像会与default-character-set=utf8冲突
建议测试前先my.cnf文件中的default-character-set=utf8注释掉

在这里插入图片描述

在这里插入图片描述

mysqlslap --defaults-file=/etc/my.cnf --concurrency=100,200 --iterations=1 --number-int-cols=20 --number-char-cols=30 --auto-generate-sql --auto-generate-sql-add-autoincrement --auto-generate-sql-load-type=mixed --engine=myisam,innodb --number-of-queries=2000 -uroot -pabc123 --verbose

#模拟测试两次读写并发,第一次100,第二次200,自动生成SQL脚本,测试表包含20个init字段,30个char字段,每次执行2000查询请求。测试引擎分别是myisam,innodb。

–defaults-file=/etc/my.cnf 从/etc/my.cnf文件中读取默认选项
–concurrency=100,200 测试并发的线程数/客户端数,第一次100,第二次200
–iterations=1 指定测试重复次数1次
–number-int-cols=20 指定测试表中int列的数量
–number-char-cols=30 指定测试表中varchar列的数量
–auto-generate-sql 自动生成 SQL 语句
–auto-generate-sql-add-autoincrement 在自动生成的表中添加自增列
–auto-generate-sql-load-type=mixed 测试的负载模型,包括 mixed, update, write, key,read,默认是 mix
–engine=myisam,innodb 指定建表时的存储引擎
–number-of-queries=2000 指定每个线程执行的 SQL 语句数量上限(不精确)
–verbose 更详细的输出

在这里插入图片描述

Average number of seconds to run all queries #运行所有查询的平均秒数

Minimum number of seconds to run all queries #运行所有查询所需的最小秒数

Maximum number of seconds to run all queries #运行所有查询的最大秒数

Number of clients running queries #运行查询的客户端数量

Average number of queries per client #每个客户端的平均查询数

mysqlslap --defaults-file=/etc/my.cnf --concurrency=200,400 --iterations=1 --number-int-cols=50 --number-char-cols=60 --auto-generate-sql --auto-generate-sql-add-autoincrement --auto-generate-sql-load-type=mixed --engine=myisam,innodb --number-of-queries=80000 -uroot -pabc123 --verbose

压力调大测试,发现明显现在查询时间明显变慢了

在这里插入图片描述

压力大一点
在这里插入图片描述

(二)、使用第三方工具sysbench进行压力测试

1、简介

系统平台/自述文件在硕士 ·阿科皮托夫/系统台 ·吉特哈布 (github.com)
https://github.com/akopytov/sysbench/blob/master/README.md#general-command-line-options
sysbench]是一款开源的多线程性能测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试。数据库目前支持MySQL/Oracle/PostgreSQL。本文只是简单演示一下几种测试的用法,后续准备利用sysbench来对MySQL进行一系列的测试。具体的一些参数设置,需要根据不同的测试要求来进行调整。
CPU 运算性能测试
磁盘、IO、性能测试
调度程序性能测试
内存分配及传输速度测试
POSIX 线程性能测试
数据库性能测试(OLTP 基准测试,需要通过 /usr/share/sysbench/ 目录中的 Lua 脚本执行,例如 oltp_read_only.lua 脚本执行只读测试)
sysbench 还可以通过运行命令时指定自己的 Lua 脚本来自定义测试。

2、默认支持mysql

yum -y install epel-release #安装第三方epel源
yum -y install sysbench #安装sysbench工具
sysbench --version #确定工具已安装
sysbench 1.0.17

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3、查看sysbench工具的帮助选项

  • testname 是内置测试的可选名称(例如 ,,等),或捆绑的 Lua 脚本之一的名称(例如),或自定义 Lua 脚本的路径。如果在命令行上没有指定测试名称(因此,也没有命令,因为在这种情况下,它将被解析为测试名称),或者测试名称是破折号(“”),则 sysbench 期望 Lua 脚本在其标准输入上执行。

  • command 是一个可选参数,它将通过系统平台传递到使用测试名称指定的内置测试或脚本。命令定义测试必须执行的操作。可用命令的列表取决于特定的测试。某些测试还实现自己的自定义命令。

以下是对典型测试命令及其用途的描述:

`prepare`:为那些需要它们的测试执行准备操作,例如,在磁盘上为测试创建必要的文件,或为数据库基准测试填充测试数据库。
`run`:运行使用测试名称参数指定的实际测试。此命令由所有测试提供。
`cleanup`:在创建临时数据的测试中,删除测试运行后的临时数据。
`help`:显示使用测试名参数指定的测试的用法信息。这包括测试提供的命令的完整列表,因此应使用它来获取可用命令。

  • optiond是以 开头的零个或多个命令行选项的列表。与命令一样,该命令应用于描述特定测试提供的可用选项。
有关 sysbench 本身提供的常规选项的说明,请参阅常规命令行选项。
#可用于显示常规命令行语法和选项。sysbench --help
sysbench --help
Usage:
  sysbench [options]... [testname] 
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于使用xtrabackup进行MySQL 5.7的压力测试,您可以按照以下步骤进行操作: 1. 安装xtrabackup:首先,您需要在测试环境中安装xtrabackup工具。您可以根据您的操作系统类型和版本选择合适的安装方法。 2. 准备测试数据:在进行压力测试之前,您需要准备一些适用于您的测试场景的MySQL数据库。您可以使用已有的数据库或者创建一个新的数据库,并将其填充到所需的数据量。 3. 创建备份:使用xtrabackup工具创建MySQL数据库的备份。您可以使用以下命令来执行备份操作: ``` xtrabackup --backup --target-dir=/path/to/backup ``` 其中,`/path/to/backup`是您希望将备份文件保存的目录路径。 4. 恢复备份:在每次压力测试之前,都需要将备份文件恢复到MySQL实例中。您可以使用以下命令来执行恢复操作: ``` xtrabackup --prepare --target-dir=/path/to/backup ``` 然后,您可以使用以下命令来将备份文件恢复到MySQL实例中: ``` xtrabackup --copy-back --target-dir=/path/to/backup ``` 注意,执行此步骤前请确保MySQL服务已停止。 5. 启动MySQL服务:在恢复备份之后,您可以启动MySQL服务,并确保它正常运行。 6. 执行压力测试:使用您喜欢的压力测试工具(如sysbench、tpcc-mysql等)对MySQL进行压力测试。您可以设置适当的并发用户数和负载类型,以模拟实际应用场景。 请注意,进行压力测试可能会对系统资源产生较高的负载,请确保您的测试环境具备足够的硬件资源和性能。此外,为了获得准确的测试结果,建议在测试过程中监控系统指标并记录相关日志。 希望以上步骤能对您进行xtrabackup和MySQL 5.7的压力测试有所帮助!如有更多问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值