当前位置:网站首页>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 查看语句做了什么。边栏推荐
- c#学习_第二弹
- 做项目管理有且有必要了解并学习的重要知识--PMP项目管理
- MySQL性能指标TPS\QPS\IOPS如何压测?
- Map common traversal methods - keySet and entrySet
- Just a Hook
- 项目里的各种配置,你都了解吗?
- 错误 AttributeError type object 'Callable' has no attribute '_abc_registry' 解决方案
- How to stress the MySQL performance indicators TPS\QPS\IOPS?
- 干掉visio,这个画图神器真的绝了
- SSRF-服务器端请求伪造-相关知识
猜你喜欢

使用COLMAP初步三维重建

秋招攻略秘籍,吃透25个技术栈Offer拿到手软

代码越写越乱?那是因为你没用责任链!

《社会企业开展应聘文职人员培训规范》团体标准在新华书店上架

人像分割技术解析与应用

项目里的各种配置,你都了解吗?

Interviewer: Tell me the difference between NIO and BIO

Programmer Qixi Gift - How to quickly build an exclusive chat room for your girlfriend in 30 minutes

《C 陷阱与缺陷 》阅读概要

CLS-PEG-DBCO,胆固醇-聚乙二醇-二苯基环辛炔,可用于改善循环时间
随机推荐
21天学习挑战赛--第二天打卡(setSystemUiVisibility、导航栏、状态栏)
idea permanent activation tutorial (new version)
基于双层共识控制的直流微电网优化调度(Matlab代码实现)
【LeetCode】1403. 非递增顺序的最小子序列
vcl啥意思_oval
nVisual二次开发——第二章 nVisual API操作指南Swagger使用
搭建ros交叉编译环境(从x86到nvidia arm)
Ultra-QuickSort
做项目管理有且有必要了解并学习的重要知识--PMP项目管理
《社会企业开展应聘文职人员培训规范》团体标准在新华书店上架
sqlserver删除重复数据
[Niu Ke brush questions-SQL big factory interview questions] NO5. Analysis of a treasure store (e-commerce model)
座舱人机交互「暗潮汹涌」,语音「下」,多模态「上」
leetcode 48. Rotate Image 旋转图像(Medium)
如何查找endnote文献中pdf文件的位置
荧光磷脂PEG衍生物之一磷脂-聚乙二醇-荧光素,Fluorescein-PEG-DSPE
VBS函数应用–getobject的使用获得Automation对象
MPLS experiment
TS - type
Is the code more messy?That's because you don't use Chain of Responsibility!