当前位置:网站首页>MySQL性能指标TPS\QPS\IOPS如何压测?
MySQL性能指标TPS\QPS\IOPS如何压测?
2022-08-04 13:40:00 【InfoQ】
1. 性能指标概览
2. 指标计算方式
2.1 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)/Uptime2.2 QPS
2.3 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) = 2003、mysqlslap
3.1 压测
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 查看语句做了什么。边栏推荐
猜你喜欢

【牛客刷题-SQL大厂面试真题】NO5.某宝店铺分析(电商模式)

leetcode 48. Rotate Image 旋转图像(Medium)

永磁同步电机FOC驱动代码讲解

Interviewer: How to view files containing abc string in /etc directory?

How to stress the MySQL performance indicators TPS\QPS\IOPS?

ReentrantLock 原理

到底什么是真正的HTAP?

干掉visio,这个画图神器真的绝了
![[UML] Summary of Information System Analysis and Design Knowledge Points](/img/a2/32267c5bfdf8114c4c723278a1897c.png)
[UML] Summary of Information System Analysis and Design Knowledge Points

如何查找endnote文献中pdf文件的位置
随机推荐
How to find the location of a pdf file in endnote literature
高手,云集在于REST、gRPC 和 GraphQL之间!
redis未授权访问漏洞【vulhub靶场】复现
倒计时 3 天|一起看云原生 Meetup 的六大议题
并发刺客(False Sharing)——并发程序的隐藏杀手
博途200/1500PLC多段曲线控温FB(支持40段控温曲线、段曲线搜索、暂停、跳段等功能)
LeetCode_3_无重复字符的最长子串
石子 无限拿
Cows 树状数组
按键控制开关4017芯片数字电路
如何查找endnote文献中pdf文件的位置
JSX use
Map common traversal methods - keySet and entrySet
搭建ros交叉编译环境(从x86到nvidia arm)
LeetCode_424_替换后的最长重复字符
Interviewer: Tell me the difference between NIO and BIO
Systemui qsSetting添加新图标
MySQL性能指标TPS\QPS\IOPS如何压测?
router---动态路由匹配
LM2596有没有可以替代的?LM2576可以