MySQL性能指标TPS+QPS+IOPS压测

目录
  • 前言
  • 1. 性能指标概览
  • 2. 指标计算方式
    • 2.1 TPS
    • 2.2 QPS
    • 2.3 IOPS
  • 3. mysqlslap
    • 3.1 压测
    • 3.2 案例

前言

今天主要介绍MySQL数据库,或者说所有数据库的三个关键性能指标TPS\QPS\IOPS

1. 性能指标概览

QPS(Queries Per Second)就是每秒的查询数,对数据库而言就是数据库每秒执行的 SQL 数(含 insert、select、update、delete 等)。
TPS(Transactions Per Second)就是每秒的事务数。TPS 对于数据库而言就是数据库每秒执行的事务数,以 commit 成功次数为准。
IOPS 每秒磁盘进行的I/O操作次数

2. 指标计算方式

2.1 TPS

适用innodb Transactions Per Second(每秒传输的事物处理个数),即服务器每秒处理的事务数
一般的,评价系统性能均以每秒钟完成的技术交易的数量来衡量。系统整体处理能力取决于处理能力最低模块的TPS值

mysql> SHOW GLOBAL STATUS LIKE 'Com_commit';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Com_commit    | 22402 |
+---------------+-------+
1 row in set (0.00 sec)

mysql> SHOW GLOBAL STATUS LIKE 'Com_rollback';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Com_rollback  | 0     |
+---------------+-------+
1 row in set (0.00 sec)
mysql> SHOW GLOBAL STATUS LIKE 'Uptime'
    -> ;
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Uptime        | 3319  |
+---------------+-------+
1 row in set (0.01 sec)
TPS=(Com_commit + Com_rollback)/Uptime

2.2 QPS

同时适用与InnoDB和MyISAM 引擎 每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准 对应fetches/sec,即每秒的响应请求数,也即是最大吞吐能力

2.3 IOPS

IOPS (Input/Output Per Second)即每秒的输入输出量(或读写次数),是衡量磁盘性能的主要指标之一。IOPS是指单位时间内系统能处理的I/O请求数量,一般以每秒处理的I/O请求数量为单位,I/O请求通常为读或写数据操作请求。随机读写频繁的应用,如OLTP(Online Transaction Processing),IOPS是关键衡量指标。另一个重要指标是数据吞吐量(Throughput),指单位时间内可以成功传输的数据数量。对于大量顺序读写的应用,如VOD(Video On Demand),则更关注吞吐量指标。 IOPS可细分为如下几个指标: Toatal IOPS,混合读写和顺序随机I/O负载情况下的磁盘IOPS,
这个与实际I/O情况最为相符,大多数应用关注此指标。
Random Read IOPS,100%随机读负载情况下的IOPS。
Random Write IOPS,100%随机写负载情况下的IOPS。
Sequential Read IOPS,100%顺序负载读情况下的IOPS。
Sequential Write IOPS,100%顺序写负载情况下的IOPS。
IOPS的测试benchmark工具主要有Iometer, IoZone, FIO等,可以综合用于测试磁盘在不同情形下的IOPS。对于应用系统,需要首先确定数据的负载特征,然后选择合理的IOPS指标进行测量和对比分析,据此选择合适的存储介质和软件系统。

理论上可以计算出磁盘的最大IOPS,即IOPS = 1000 ms/ (Tseek + Troatation),忽略数据传输时间。假设磁盘平均物理寻道时间为3ms, 磁盘转速为7200,10K,15K rpm,则磁盘IOPS理论最大值分别为,
IOPS = 1000 / (3 + 60000/7200/2) = 140
IOPS = 1000 / (3 + 60000/10000/2) = 167
IOPS = 1000 / (3 + 60000/15000/2) = 200

3. mysqlslap

3.1 压测

mysqlslap 是 MySQL 自带的一个用于实现负载性能测试和压力测试的工具。它可以模拟多个客户端对数据库进行施压,并生成报告来了解数据库的性能状况。
mysqlslap 的运行过程主要分三步:
① 创建库、表,导入数据用于测试。此过程由单线程完成。
② 开始进行压力测试。该步骤可以使用多线程完成。
③ 清理测试数据。此过程由单线程完成。

[root@jeames ~]# mysqlslap --help

3.2 案例

mysqlslap -uroot -proot -h192.168.1.54 -P3306 \
--create-schema=mysqlslap --auto-generate-sql \
--auto-generate-sql-load-type=mixed \
--concurrency=100,200 --number-of-queries=1000 \
--iterations=10 --number-int-cols=7 \
--number-char-cols=13 --auto-generate-sql-add-autoincrement

Benchmark
#运行所有语句的平均时间,单位秒
Average number of seconds to run all queries: 0.018 seconds
#运行所有语句的最小秒数
Minimum number of seconds to run all queries: 0.018 seconds
#运行所有语句的最大秒数
Maximum number of seconds to run all queries: 0.018 seconds
#客户端数量
Number of clients running queries: 1
#每个客户端运行查询的平均数
Average number of queries per client: 0

该语句表示测试并发为 100 和 200 的情况,进行 1000 次访问(该值一般这样预估出来:并发客户数×每客户查询次数)。这样的测试方法迭代 10 次,最终显示最大、
最小、平均值
其中:--debug-info,代表要额外输出 CPU 以及内存的相关信息。如果报错 Option 'debug-info' used, but is disabled 请取消 debug-info 参数
-number-int-cols=7 表示生成的表中必须有 7 个 int 类型的列
-number-char-cols=13 表示生成的表中必须有 13 个 char 类型的列
-concurrency 代表并发数量,多个可以用逗号隔开,concurrency=10,50,100, 并发连接线程数分别是 10、50、100 个并发。
--engines 代表要测试的引擎,可以有多个,用分隔符隔开。
--iterations 代表要运行这些测试多少次。
--auto-generate-sql 代表用系统自己生成的 SQL 脚本来测试。
--auto-generate-sql-load-type 代表要测试的是读还是写还是两者混合的(read,write,update,mixed)
--number-of-queries 代表总共要运行多少次查询。每个客户运行的查询数量可以用查询总数/并发数来计算。
--debug-info 代表要额外输出 CPU 以及内存的相关信息。
--number-int-cols :创建测试表的 int 型字段数量
--auto-generate-sql-add-autoincrement : 代表对生成的表自动添加 auto_increment 列,从 5.1.18 版本开始
--number-char-cols 创建测试表的 char 型字段数量。
--create-schema 测试的 schema,MySQL 中 schema 也就是 database。
--query 使用自定义脚本执行测试,例如可以调用自定义的一个存储过程或者 sql 语句来执行测试。
--only-print 查看语句做了什么。

到此这篇关于MySQL性能指标TPS+QPS+IOPS压测的文章就介绍到这了,更多相关MySQL性能指标压测内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Mysql数据库的QPS和TPS的意义和计算方法

    在做db基准测试的时候,qps,tps 是衡量数据库性能的关键指标.本文比较了网上的两种计算方式.先来了解一下相关概念. 概念介绍: QPS:Queries Per Second         查询量/秒,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理查询量多少的衡量标准. TPS :  Transactions Per Second   是事务数/秒,是一台数据库服务器在单位时间内处理的事务的个数. 在对数据库的性能监控上经常会提到QPS和TPS这两个名词,下

  • MySQL几点重要的性能指标计算和优化方法总结

    1 QPS计算(每秒查询数) 针对MyISAM引擎为主的DB MySQL> show GLOBAL status like 'questions'; +---------------+------------+ | Variable_name | Value | +---------------+------------+ | Questions | 2009191409 | +---------------+------------+ 1 row in set (0.00 sec) mysql

  • 如何使用mysqladmin获取一个mysql实例当前的TPS和QPS

    mysqladmin是mysql官方的一款执行管理端的客户端程序,可以利用它对MySQL数据库服务进行操作,在MySQL5.5及以前的版本中,最常用的方法是用它来关闭mysql实例: mysqladmin -uxxx -pxxx -Pxxx -hxxx  shutdown 随着mysql版本的升级,mysql5.7中已经可以直接使用shutdown命令来进行mysql服务的关闭了.mysql8.0版本中,可以使用restart命令来对mysql服务进行重启,mysqladmin这个工具在日常的运

  • mysql配置连接参数设置及性能优化

    目录 1 前言 2 数据库连接配置信息 3 配置信息说明 4 数据库sql 5 mysql 性能优化的关注点 6 硬件和操作系统方面的优化 7 架构设计方面的优化 8 mysql 程序配置优化. 9 sql 执行层面优化 10 最终总结 1 前言 在java开发中,最常用的数据存储就是数据库,其中常用的就是mysql,关于数据库的连接配置信息,可能就不是那么的清除了,这里做一个配置信息的说明. 2 数据库连接配置信息 jdbc:mysql://localhost:3306/database_na

  • MySQL性能指标TPS+QPS+IOPS压测

    目录 前言 1. 性能指标概览 2. 指标计算方式 2.1 TPS 2.2 QPS 2.3 IOPS 3. mysqlslap 3.1 压测 3.2 案例 前言 今天主要介绍MySQL数据库,或者说所有数据库的三个关键性能指标TPS\QPS\IOPS 1. 性能指标概览 QPS(Queries Per Second)就是每秒的查询数,对数据库而言就是数据库每秒执行的 SQL 数(含 insert.select.update.delete 等).TPS(Transactions Per Secon

  • MySQL压测神器HammerDB的部署及使用详解

    目录 前言 ️ 1. HammerDB简介 ️ 2. 容器部署 2.1 镜像下载 2.2 创建容器 2.3 Linux 下安装 2.4 相关校验 ️3 . HammerDB压测MySQL 前言 HammerDB 是一个开源的数据库负载测试和基准测试工具,同时支持 Windows 和 Linux 平台. ️ 1. HammerDB简介 HammerDB 是一个开源的数据库负载测试和基准测试工具,同时支持 Windows 和 Linux 平台,可以针对 Oracle .SQL Server.DB2.

  • Docker部署及使用压测神器sysbench的方法

    目录 前言 ️ 1. sysbench简介 1.1 sysbench能做什么 1.2 压力测试的指标 1.3 常见的压测工具 ️ 2.容器安装 2.1 服务器申请 2.2 yum安装 ️ 3.测试 CPU ️ 4.测试磁盘 IO ️ 4.测试内存 前言 sysbench是一款开源的多线程性能测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试 ️ 1. sysbench简介 1.1 sysbench能做什么 新业务上线的时候通常需要对数据库性能进行压力测试,以确认是否满足需要,今天

  • mysql 5.7.20解压版安装方法步骤详解(两种方法)

    我来讲解下window64位下MySQL的安装,MySQL是在5.7开始安装版就只有32位下载服务了,这里我讲解解压版的MySQL如何安装,在安装MySQL解压版时对于新手的小编来说也是头疼得很,各种问题各种来没有安装版的一键轻松搞定的方便,安装时需要注意三点:1.路径配置,2.安装时MySQL端口被占用这时需要关闭被占用端口,3.cmd必须是在管理员环境下设置MySQL信息. MySQL官网: https://www.mysql.com/downloads/ http://www.jb51.n

  • MySql 5.7.14 解压版安装步骤详解

    下面主要分为五大步给大家介绍mySql 5.7.14 解压版安装教程.感兴趣的朋友一起看看吧. 第一步:下载最近的MySQL文件并且解压: 下载最新版的MySQL–mysql-5.7.12下载地址 将下载到的文件解压缩到自己喜欢的位置,例如我自己的位置是D:\MySQL\mysql-5.7.12-winx64 第二步:配置环境变量 这里不多说,bin目录配置到path下面就行了. 第三步:添加配置文件 直接复制一个解压路径下面的 my-default.ini文件,重命名为my.ini然后编辑该文

  • MySQL v5.7.18 解压版本安装详细教程

    下载MySQL https://dev.mysql.com/downloads/mysql/5.1.html#downloads 个人机子是64位的,所以选择下载:Windows (x86, 64-bit), ZIP Archive 版本 解压并安装 1.将下载下载的包解压到指定目录,(本人)解压到:D:\Program Files (x86) 目录下. 因此,MySQL的(安装)包的完整路径为:D:\Program Files (x86)\mysql-5.7.18-winx64 2.解压后,配

  • Mysql 5.7.18 解压版下载安装及启动mysql服务的图文详解

    因MySQL Community Server5.7.18的分发包中没有.ini文件,且不会初始化数据目录,故网上之前的版本安装改配置教程不适用 step1:到官网下载https://dev.mysql.com/downloads/mysql/ 解压后 step2:now配置环境变量 新建名为MYSQL_HOME系统变量,路径为解压后文件路径(记得到bin下) 添加;%MYSQL_HOME%\bin到path路径中 step3:到C:\Windows\System32\cmd.exe中选中cmd

  • mysql 5.7.21解压版安装配置方法图文教程(win10)

    mysql 5.7.21解压版安装配置方法,供大家参考,具体内容如下 1. 官网下载MYSQL压缩文件. 下载网址 2. 解压文件 直接解压,解压后安装包目录如下:(注意:此时没有data目录和.Ini文件) 3. 将文件放入自己想放的目录,下面是我放的目录 4. 由于解压后没有.ini文件在此目录下新建my.ini文件 .Ini文件内容如下: [mysqld] port = 3306 basedir=C:\Program Files\MYSQL\MySQL Server 5.7.21 data

  • mysql 8.0.12 解压版安装教程

    本文为大家分享了mysql 8.0.12 解压版安装教程,供大家参考,具体内容如下 1.首先在官网上下载mysql8.0.12的压缩包:下载地址 2.下载成功后解压到任意目录,比如我的是E:\download\mysql-8.0.12-winx64: 3.配置环境变量,在系统变量path的末尾追加解压后的bin文件夹所在目录:E:\download\mysql-8.0.12-winx64\mysql-8.0.12-winx64; 4.以管理员身份运行cmd,如果不是管理员则不能注册mysql服务

  • Windows10下mysql 8.0.12解压版安装配置方法图文教程

    记录了mysql 8.0.12解压版安装配置方法,分享给大家. 安装环境:Window10家庭版,64位 数据库:MySQL8.0.12 64位 安装方式:压缩包安装 安装步骤: 1.下载安装包 从MySQL官网上下载 最新的安装包 直接点击最下方的"No thanks, just start my download."即可开始下载 下载成功后的压缩包 注:安装数据库时,登录用户必须拥有Administrator权限. 2.将压缩包解压后放到将要安装的目录下 解压后的文件结构如图: 从

随机推荐