当前位置:网站首页>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)/Uptime
2.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) = 200
3、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 查看语句做了什么。
边栏推荐
- 搭建ros交叉编译环境(从x86到nvidia arm)
- odoo13笔记点
- This article sorts out the development of the main models of NLP
- VBS函数应用–getobject的使用获得Automation对象
- 用过Apifox这个API接口工具后,确实感觉postman有点鸡肋......
- LeetCode_3_无重复字符的最长子串
- 到底什么是真正的HTAP?
- Script to get local IP address
- 错误 AttributeError type object 'Callable' has no attribute '_abc_registry' 解决方案
- idea永久激活教程(新版)
猜你喜欢
How to stress the MySQL performance indicators TPS\QPS\IOPS?
CReFF缓解长尾数据联邦学习(IJCAI 2022)
判断密码是否包含键盘连续字母
State security organs conduct criminal arrest and summons review on Yang Zhiyuan, a suspect suspected of endangering national security
人像分割技术解析与应用
【毕设选题推荐】机器人工程专业毕设选题推荐
企业应当实施的5个云安全管理策略
一文梳理NLP主要模型发展脉络
MySQL性能指标TPS\QPS\IOPS如何压测?
[Niu Ke brush questions-SQL big factory interview questions] NO5. Analysis of a treasure store (e-commerce model)
随机推荐
LeetCode_643_子数组的最大平均数Ⅰ
State security organs conduct criminal arrest and summons review on Yang Zhiyuan, a suspect suspected of endangering national security
Cows 树状数组
How to stress the MySQL performance indicators TPS\QPS\IOPS?
高手,云集在于REST、gRPC 和 GraphQL之间!
JSX使用
密码设置十准则
代码越写越乱?那是因为你没用责任链!
leetcode 48. Rotate Image 旋转图像(Medium)
Billboard
Script to get local IP address
php中的ceil和floo以及round函数「建议收藏」
Unity 3D模型展示框架篇之资源打包、加载、热更(Addressable Asset System | 简称AA)
《C 陷阱与缺陷 》阅读概要
AVR学习笔记之熔丝位
[UML] Summary of Information System Analysis and Design Knowledge Points
橄榄枝大课堂APP正式启动上线
企业应当实施的5个云安全管理策略
MySQL-数据类型
密码设置有关方法:不能相同字母,不能为连续字符