MySQL数据库基于sysbench实现OLTP基准测试
sysbench是一款非常优秀的基准测试工具,它能够精准的模拟MySQL数据库存储引擎InnoDB的磁盘的I/O模式。因此,基于sysbench的这个特性,下面利用该工具,对MySQL数据库支撑从简单到复杂事务处理工作负载的基准测试与验证。
测试场景一、OLTP读基准测试
1) 准备数据
sysbench --test=oltp --mysql-table-engine=innodb --oltp-table-size=100000
--mysql-db=cbusdb --mysql-user=root prepare
2) OLTP随机读一致性业务场景测试验证
time sysbench --test=oltp --oltp-table-size=100000 --mysql-db=cbusdb
--mysql-user=root --max-time=60 --oltp-read-only --max-requests=0 --num-threads=8 run
以上测试模拟并发8个线程,最大请求10000次/秒,持续60秒对单表数据集10w条数据量的表进行随机读操作,测试结果如下所示:
通过模拟8个并发用户在数据量10w条的表上进行一致性读操作并结合上图,分析得出如下结论:
1) 60秒内共执行读请求766094次,更新及其他类型的请求109442次,QPS:12765;
2) 60s内共执行事务操作54721,TPS:911,成功率100%;
3) 每个事务执行最小时间2.98ms,最大时间184.5ms,平均执行时间8.76ms。
以上测试结果运行环境基本配置信息:
1) 虚拟机2颗CPU、2G内存,20G存储空间;
2) MySQL数据库参数未优化、调整。
测试场景二、OLTP混合类型负载测试
模拟OLTP随机读、写(更新、删除、插入):
sysbench --test=oltp --mysql-table-engine=innodb --oltp-table-size=10000
--mysql-db=cbusdb --mysql-user=root --max-time=60
--oltp-nontrx-mode=update_key --max-requests=0 --num-threads=8 run
测试结果如下所示:
通过模拟8个并发用户在数据量10w条的表上模拟复杂的混合性工作负载测试并结合上图,分析得出如下结论:
1) 60秒内共执行读请求233268次,写请求83260次,其他类型的请求:33309,QPS:5273;
2) 60s内共执行事务操作16647,TPS:277,锁冲突造成的死锁的数量15个,事务的成功率99.91%;
3) 每个事务执行最小时间8.19ms,最大时间1299.78ms,平均执行时间28.82ms。
以上测试结果运行环境基本配置信息:
1) 虚拟机2颗CPU、2G内存,20G存储空间;
2) MySQL数据库参数未优化、调整。
sysbench详细介绍
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:- Sysbench对Mysql进行基准测试过程解析
- 通过sysbench工具实现MySQL数据库的性能测试的方法
- sysbench对mysql压力测试的详细教程
- 使用sysbench来测试MySQL性能的详细教程
- 用sysbench来测试MySQL的性能的教程
- MySQL性能压力基准测试工具sysbench的使用简介
您可能感兴趣的文章
- 05-31MySQL中的 inner join 和 left join的区别解析(小结果集驱动大结果集)
- 05-31MySQL索引失效十种场景与优化方案
- 05-31MYSQL 高级文本查询之regexp_like和REGEXP详解
- 05-31MySQL获取binlog的开始时间和结束时间(最新方法)
- 05-31MySQL索引查询的具体使用
- 05-31基于MySQL和Redis扣减库存的实践
- 05-31关于MySQL的存储过程与存储函数
- 05-31MySQL实战文章(非常全的基础入门类教程)
- 05-31MySQL Flink Watermark实现事件时间处理的关键技术
- 05-31MySQL Flink实时流处理的核心技术之窗口机制
阅读排行
推荐教程
- 05-30Navicat for MySQL 11注册码激活码汇总
- 05-27Mysql误删数据快速恢复
- 05-31VS2022连接数据库MySQL并进行基本的表的操作指南
- 05-30解决seata不能使用mysql8版本的问题方法
- 05-30MYSQL字符集设置的方法详解(终端的字符集)
- 05-30解决MySQL启动报错:ERROR 2003 (HY000): Can't con
- 05-30关于Mysql-connector-java驱动版本问题总结
- 11-22mac下安装mysql忘记密码的修改方法
- 05-30MySQL中的隐藏列的具体查看
- 11-22mysql exists与not exists实例详解