MySQL性能指标TPS+QPS+IOPS压测实例分析(mysql,qps,tps,开发技术)

时间:2024-05-08 05:28:40 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

这篇“MySQL性能指标TPS+QPS+IOPS压测实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“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>SHOWGLOBALSTATUSLIKE'Com_commit';+---------------+-------+|Variable_name|Value|+---------------+-------+|Com_commit|22402|+---------------+-------+1rowinset(0.00sec)mysql>SHOWGLOBALSTATUSLIKE'Com_rollback';+---------------+-------+|Variable_name|Value|+---------------+-------+|Com_rollback|0|+---------------+-------+1rowinset(0.00sec)mysql>SHOWGLOBALSTATUSLIKE'Uptime'->;+---------------+-------+|Variable_name|Value|+---------------+-------+|Uptime|3319|+---------------+-------+1rowinset(0.01sec)TPS=(Com_commit+Com_rollback)/Uptime

MySQL性能指标TPS+QPS+IOPS压测实例分析

2.2 QPS

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

MySQL性能指标TPS+QPS+IOPS压测实例分析

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=1000ms/(Tseek+Troatation),忽略数据传输时间。假设磁盘平均物理寻道时间为3ms,磁盘转速为7200,10K,15Krpm,则磁盘IOPS理论最大值分别为,IOPS=1000/(3+60000/7200/2)=140IOPS=1000/(3+60000/10000/2)=167IOPS=1000/(3+60000/15000/2)=200

3. mysqlslap

3.1 压测

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

[root@jeames ~]# mysqlslap --help

MySQL性能指标TPS+QPS+IOPS压测实例分析

3.2 案例

mysqlslap-uroot-proot-h292.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-autoincrementBenchmark#运行所有语句的平均时间,单位秒Averagenumberofsecondstorunallqueries:0.018seconds#运行所有语句的最小秒数Minimumnumberofsecondstorunallqueries:0.018seconds#运行所有语句的最大秒数Maximumnumberofsecondstorunallqueries:0.018seconds#客户端数量Numberofclientsrunningqueries:1#每个客户端运行查询的平均数Averagenumberofqueriesperclient:0该语句表示测试并发为100和200的情况,进行1000次访问(该值一般这样预估出来:并发客户数×每客户查询次数)。这样的测试方法迭代10次,最终显示最大、最小、平均值其中:--debug-info,代表要额外输出CPU以及内存的相关信息。如果报错Option'debug-info'used,butisdisabled请取消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性能指标TPS+QPS+IOPS压测实例分析”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。

本文:MySQL性能指标TPS+QPS+IOPS压测实例分析的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:如何利用LyScript实现应用层钩子扫描器下一篇:

22 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18