MySQL数据库基于sysbench实现OLTP基准测试

作者:fengzhanhai 时间:2024-01-28 11:07:14 

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条数据量的表进行随机读操作,测试结果如下所示:

MySQL数据库基于sysbench实现OLTP基准测试

通过模拟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

测试结果如下所示:

MySQL数据库基于sysbench实现OLTP基准测试

通过模拟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详细介绍

来源:104.116.116.112.58.47.47.109.46.98.108.111.103.46.99.104.105.110.97.117.110.105.120.46.110.101.116.47.117.105.100.45.50.53.55.50.51.51.55.49.45.105.100.45.53.53.57.56.57.53.50.46.104.116.109.108.

标签:MySQL,数据库,OLTP,测试,sysbench
0
投稿

猜你喜欢

  • Mysql出生日期转换为年龄并分组统计人数的方法示例

    2024-01-14 14:58:03
  • pymongo中group by的操作方法教程

    2021-03-23 05:44:40
  • 已安装tensorflow-gpu,但keras无法使用GPU加速的解决

    2021-08-15 12:17:42
  • ASP中查询数据库记录写入XML文件示例

    2007-08-23 13:12:00
  • 基于Python中random.sample()的替代方案

    2021-01-16 18:41:07
  • python连接MySQL、MongoDB、Redis、memcache等数据库的方法

    2024-01-13 15:35:25
  • 对python3.4 字符串转16进制的实例详解

    2022-03-29 16:15:17
  • 详解python分布式进程

    2023-07-01 16:25:16
  • python3实现点餐系统

    2023-04-30 19:06:55
  • 使用Python对mongo数据库中字符串型正负数值比较大小

    2024-01-18 00:04:50
  • Python的Django框架中使用SQLAlchemy操作数据库的教程

    2021-10-28 11:41:09
  • ms SQL server数据库备份、压缩与SQL数据库数据处理的方法

    2024-01-18 14:54:04
  • MySQL性能优化之路---修改配置文件my.cnf

    2024-01-23 16:20:53
  • Python中可以用三种方法判断文件是否存在

    2022-05-11 10:15:41
  • 一行代码让 Python 的运行速度提高100倍

    2021-05-18 12:29:50
  • MySQL的意向共享锁、意向排它锁和死锁

    2024-01-14 18:16:02
  • SQL Server 2008 备份数据库、还原数据库的方法

    2024-01-12 20:36:16
  • php数组中删除元素之重新索引的方法

    2024-05-22 10:07:18
  • 用ASP和SQL实现基于Web日历源码

    2010-04-24 15:52:00
  • Python计算机视觉里的IOU计算实例

    2021-12-07 18:15:10
  • asp之家 网络编程 m.aspxhome.com