数据库性能测试之tpcc-mysql压力测试

数据库性能压测之TPC-C基准测试 TPC-C是用商品批发业务混合了只读和读写等复杂事务来模拟OLTP场景。本文的目的是梳理TPC-C的特点以及工具使用,希望对同学们做TPC-C基准压测有所帮助。 阅读详情

在上一篇博客中使用了sysbench基准测试,是对单张表进行的读写测试,由于不涉及表连接、外键约束、索引等操作,所以体现的是硬件性能,如果相要知道数据库集群在真实业务中的实际性能,那么需要压力测试。本篇博客讲解tpcc-mysql压力测试。

1. tpcc-mysql简介

tpcc-mysql是percona基于tpcc规范衍生出来的产品,专门用于mysql压力测试 。
tpcc是一种测试标准,明确规定了数据模型和检测是指标,而且检测的标准对数据库集群来说很苛刻,tpcc-mysql的测试库能覆盖大多数的业务场景,测试的结果也能反映出真实业务中数据库的实际性能。

1.1 tpcc数据模型

tpcc测试用到的数据模型是一个大型的商品批发销售公司,有若干分布在不同区域的仓库,每个仓库有10万种商品,每个仓库负责10个销售点,每个销售点有3000个客户,每个客户中的订单中有10个商品,另外有百分之1的订单商品在直属仓库中没有货,需要其他的仓库调拨
在这里插入图片描述

1.2 tpcc测试问题

tpcc的检测标准是针对单节点的mysql数据库,对sql的执行时间有严格的规定,我们要测试的pxc集群是以牺牲插入速度为代价换取的同步强一致性,假如tpcc要执行一个insert语句不能超过100ms,但是pxc集群只是写入速度慢,插入执行了300ms。这个检测点就没有通过,所以拿tpcc测试pxc集群不太适合,检测的标准太苛刻了一些,但是因为数据库集群在真实业务下实际的读写性能,每秒钟能执行多少次读操作,多少次写操作。至于由于插入速度慢测试报告中测试没有通过,可以不予理会。

1.3 tpcc测试方案

我们还是以haproxy+三个mysql节点的pxc集群来进行测试,haproxy+三个mysql节点的pxc集群如何搭建看博主往期博客。
在这里插入图片描述

2. 准备工作

2.1 关闭所有pxc节点

拿个节点用哪个命令,不在本篇博客中讲解,不熟悉的请看往期博客

systemctl stop mysql@bootstrap.service
service mysql stop 

2.2 修改my.cnf文件

把pxc_strict_mode的值改成DISABLED
原来默认的参数值是不允许我们执行不符合规范的操作,比如创建出没有主键的数据表,tpcc数据库脚本里边有一个表没有主键,所以为了tpcc测试能进行下去我们要修改pxc_strict_mode的值

vi /etc/my.cnf

在这里插入图片描述
修改完my.cnf文件之后再重新启动pxc集群

2.3 安装环境包

yum install -y gcc
yum install -y mysql-devel

2.4 安装tpcc-mysql

下载压缩包

https://codeload.github.com/Percona-Lab/tpcc-mysql/zip/master

解压之后上传到测试服务器,上传到/home目录下
在这里插入图片描述
进入src目录,再使用make命令编译

cd src
make

在这里插入图片描述

2.5 创建测试库

到pxc集群的节点上创建数据库tpcc,我们在haproxy的节点上创建,那么pxc集群的mysql库也会自动同步
在这里插入图片描述

2.6 创建测试表和索引约束

我们进入安装tpcc-mysql的目录,查看tpcc的sql文件

ls *.sql

在这里插入图片描述
create_table.sql 是创建表的sql文件
add_fkey_idx.sql是索引等约束文件

将create_table.sql文件和add_fkey_idx.sql文件拿到navicat运行sql文件。
执行完sql文件创建了以下表。
在这里插入图片描述

2.7 准备测试数据

./tpcc_load -h 192.168.1.27 -d tpcc -u admin -p Abc_123456 -w 1

-h 192.168.1.27 数据库ip地址
-d tpcc 数据库名字
-u admin 用户名
-p Abc_123456 密码
-w 1 仓库数量,由于数量庞大,插入时间较长,所以这里使用1个仓库数量,如果使用多个仓库,耗时很长。

在这里插入图片描述

2.8 执行测试

./tpcc_start -h 192.168.1.27 -d tpcc -u admin -p Abc_123456 -w 1 -c 5 -r 300 -l 600 - >tpcc-outpit.log

-h 192.168.1.27 数据库ip地址
-d tpcc 数据库名字
-u admin 用户名
-p Abc_123456 密码
-w 1 仓库数量
-c 5 并发线程数
-r 300 数据库预热时间 单位秒
-l 600 测试时间 单位秒
— >tpcc-outpit.log 测试结果输出到文件

为了真实性可以将-r 和-l时间设置长一些,比如预热1个小时,测试24小时

查看日志日志出现了大量的死锁异常,执行压力测试的时候,事务执行的时间太久,没有及时提交事务,于是出现了锁冲突。让pxc集群的锁冲突降到最低,将并发的线程数改为1

在这里插入图片描述

./tpcc_start -h 192.168.1.27 -d tpcc -u admin -p Abc_123456 -w 1 -c 1 -r 300 -l 600 - >tpcc-outpit.log

在这里插入图片描述

2.8 测试报告分析

我们打开tpcc-ouppit.log文件,画的红色的框是最终结果
在这里插入图片描述
sc: 成功执行的次数
lt: 超时执行的次数
rt: 重试执行的次数
fl: 失败执行的次数
tpcc关注这4种测试的结果

第一行是新订单执行的测试结果,tpcc在规定时间内成功执行了0条记录,由于tpcc测试指标是非常苛刻的,你虽然执行了操作,但是执行时间没有达到tpcc的要求,所以不能算为执行成功,只能算做是超时执行。pxc集群是以牺牲速度为代价换取数据同步的强一致性。虽热增删改成都能执行,但是达不到tpcc的指标。rt(重试执行的次数)和fl(失败执行的次数)是0次。

第二行是支付业务的测试结果。成功执行了0次,超时执行了5993次,重试执行0次,失败0次
第三行是订单状态的测试结果。成功执行了451次,超时执行了149次,重试执行0次,失败0次
第四行是发货业务的测试结果。成功执行了0次,超时执行了599次,重试执行0次,失败0次
第五行是库存业务的测试结果。成功执行了0次,超时执行了601次,重试执行0次,失败0次
尽管达不到tpcc的测试指标,但是没有失败执行的。以上是各种业务下的增删改查操作。

在这里插入图片描述

下边是事务的一些操作。测试报告是通过了

在这里插入图片描述
在下边是关于响应时间的一个测试,NG代表没有通过,OK代表的是测试通过。用tpcc测试pxc集群有些不合理,tpcc测试是按照单节点mysql读写速度和响应时间来制定的指标。所以pxc集群很难能达到tpcc的指标,所以这里很多响应时间的指标都是NG没通过的。

再下边的TpmC是,每分钟pxc集群执行的事务数量。

Tpcc测试工具详解 TPCC-MYSQL 专门针对 MySQL 数据库进行性能测试,它使用标准的 TPCC 基准测试规范,并提供一系列工具和脚本来准备测试数据、运行测试和分析测试结果。: 指定生成测试报告的时间间隔。如果需要更详细的测试结果,建议查阅生成的日志文件和报告文件,它们通常包含更全面的测试结果和详细的性能指标分析。在进行 TPCC 基准测试之前,需要加载适当的测试数据,以模拟真实的数据库工作负载。部分列出了使用的测试参数,包括服务器地址、端口、数据库名称、用户名、密码、仓库数量、并发连接数、热身时间和测试时间。 阅读详情

相关推荐

数据库性能基准测试——TPCC、TPCH及TPCDS的区别

针对数据库不同的使用场景TPC组织发布了多项测试标准。其中被业界广泛接受和使用的有TPC-C 、TPC-H和TPC-DS。 TPC-C 、TPC-H和TPC-DS三者的最大的一个区别是,TPCC是针对OLTP数据库进行性能测试,而TPC-H和TPC-DS是针对OLAP数据库进行测试的。 数据库处理大致可分为两大类:OLTP和OLAP。 OLTP的全称是On-line Transaction Processing,中文名称是联机事务处理。其特点是会有高并发且...

qq_34474071的博客 1万+

[MySQL]-压力测试之TPCC-MySQL

对数据库学习来说,压力测试也是十分必要的一环,本文章主要介绍了TPCC-MySQL这个工具的使用。

liangsena的博客 3406

Tpcc-Mysql 压测工具使用

一、下载与安装 1、下载软件: http://imysql.com/wp-content/uploads/2014/09/tpcc-mysql-src.tgz 2、设置mysql的环境变量 export PATH=/usr/local/mysql/bin:$PATH 3、解压 gunzip tpcc-mysql-src.tgz tar -xf tpc

u011734546的专栏 889

TPC,TPCC,TPMC(数据库性能衡量指标)

第一章 什么是TPC和tpmC? 1 TPC TPC(Transaction Processing Performance Council,事务处理性能委员会)是由数10家会员公司创建的非盈利组织,总部设在美国。该组织对全世界开放,但迄今为止,绝大多数会员都是美、日、西欧的大公司。TPC的成员主要是计算机软硬件厂家,而非计算机用户,它的功 能是制定商务应用基准程序(Benchm

很多时候,你缺少的不是知识而是热情 3万+

mysql压力测试工具tpcc-mysql安装测试使用

今天准备给mysql做个压力测试,所以就相装个tcpp-mysql压一把看看,尼玛网上一搜基本都是一个模子里出来的,下载tcpp-mysql全是一个网站(不是官网),而且还是14年的,下边我是从官网下载的 tcpp-mysql项目地址在这里:https://code.launchpad.net/~percona-dev/perconatools/tpcc-mysql 现在tcpp-mysql代

laiyijian的博客 6339

MySql-性能压力测试-概论篇

性能测试前先要清楚目的是什么? 测试数据库新版本的性能 测试新机型的性能 验证某些DB/OS层面的参数 压测存储的性能 压测某些场景 确定目标之后我们要选择何种压测场景进行压测,只读,只写,读写混合? 观察压测过程中的性能曲线是否满足我们的期望,并且真对性能出现可重复性抖动的问题进行分析原因并改进。影响性能的因素 大致分为:DB 层面、OS 层面 、存储层面。DB层面 对于M

alex大喵的博客 5053

tpcc mysql 基准测试_tpcc测试工具_基准测试工具之tpcc-mysql-云栖社区-阿里云

TPC(Tracsaction Processing Performance Council) 事务处理性能协会是一个评价大型数据库系统软硬件性能的非盈利的组织,TPC-C是TPC协会制定的,用来测试典型的复杂OLTP系统的性能。Tpcc-mysql是percona基于tpcc衍生出来的产品,专用于mysql基准测试,其源码放在bazaar上,因此需要先安装bazaar客户端。一 下载工具安装rp...

weixin_36259438的博客 261

mpu6050原理图_STM32控制 MPU6050 六轴陀螺仪资料汇总

一般使用MPU6050的步骤是先驱动I2C总线,然后初始化MPU6050,从MPU6050读取数据,最后是数据的处理。本文档详细介绍有关MPU6050 三维角度传感器电子陀螺仪使用说明。附件内容提供该 MPU6050模块原理图,配套STM32代码,相关数据手册及参考文档。实物连接图:MPU6050 六轴陀螺仪特点:使用芯片:MPU-6050供电电源:3-5v(内部低压差稳压)通信方式:标...

weixin_39911056的博客 4750

gnuplot读取mysql数据库_Tpcc-MySQL测试并使用Gnuplot生成图表

TPC(Tracsaction Processing Performance Council) 事务处理性能协会是一个评价大型数据库系统软硬件性能的非盈利的组织,TPC-C是TPC(Tracsaction Processing Performance Council) 事务处理性能协会是一个评价大型数据库系统软硬件性能的非盈利的组织,TPC-C是TPC协会制定的,用来测试典型的复杂OLTP系统的性...

weixin_39942335的博客 131

Android中的Service:Binder,Messenger,AIDL(2)

前言前面一篇博文介绍了关于Service的一些基本知识,包括service是什么,怎么创建一个service,创建了一个service之后如何启动它等等。在这一篇博文里有一些需要前一篇铺垫的东西,建议没有看过前一篇博文的同学先去看一下前一篇: Android中的Service:默默的奉献者 (1) 。但是在前一篇博文中也有一些遗漏的东西——主要是关于bindService()这一块的具体细节。由于这

lypeer的专栏 5万+

Vivado ILA调试全攻略:从HDL实例化到Block Design的5个实战技巧

本文全面解析了Vivado集成逻辑分析仪(ILA)的五种核心调试方法,涵盖从HDL代码实例化到Block Design集成的实战技巧。详细对比了不同方法的优缺点与适用场景,并重点介绍了如何利用Debug Hub高效管理多时钟域复杂调试,旨在帮助FPGA开发者精准定位问题,显著提升板级调试效率。

weixin_29214199的博客 370

TPCC-MySQL性能测试实战:从环境搭建到结果分析

本文详细介绍了TPCC-MySQL性能测试工具的使用方法,从环境搭建到结果分析的全过程。TPCC-MySQL基于TPC-C基准测试规范,能有效评估MySQL数据库在高并发事务处理场景下的性能表现。文章包含硬件配置建议、软件安装、测试数据加载、压力测试执行以及结果解读等实用内容,帮助开发者准确评估数据库性能并优化配置。

sony5的博客 721

3D视觉引导技术在机器人焊接中的应用

通过对比传统的2D视觉和3D视觉技术在焊接领域的应用差异,探讨了3D视觉引导技术在提高焊接精度、适应不规则工件形状和增强自适应能力方面的优势。本文对3D视觉引导技术在机器人焊接中的应用进行了深入探讨,总结了其在提高焊接精度、适应不规则工件形状和增强自适应能力方面的优势,并通过应用案例展示了其在焊接路径规划、焊缝检测和焊接质量控制等方面的重要作用。1. 提高焊接精度:3D视觉引导技术能够精确测量焊接工件的三维形状和位置,为机器人提供精准的焊接路径规划和跟踪,从而提高焊接精度。三、3D视觉引导技术概述。

2302_79273122的博客 1826

tpcc-mysql 性能测试

tpcc-mysql安装 Tpcc-mysql通过模拟一个电商的业务,主要包含的业务有新增订单,库存查询,发货,支付等模块的测试,用来测试典型的复杂OLTP系统的性能。Tpcc-mysql是percona基于tpcc衍生出来的产品,专用于mysql基准测试。 shell> cd /db/tool/tpcc-mysql/src/ shell> make cc -w -O2 -g -I. `m

半瓶子酱油 1104

ComfyUI 的 LoRA 训练:素材打标签与调优全攻略

标签是 LoRA 训练的"地基"——地基打不牢,后续调参再精细也难出好效果。记住:标签要"少而精",聚焦独特点,用触发词控效果。下一篇我们将讲解参数设置,让你的优质标签发挥最大价值~

2301_78150483的博客 3093

eNSP无法启动AR报错码40,而且按照eNSP帮助手册排查都没用,我的处理方法【自己存档版】

eNSP无法启动AR报错码40,而且按照eNSP帮助手册排查都没用,我的处理方法【自己存档版】

mizhiakk的博客 8364

tpcc mysql 基准测试_【工具】基准测试工具之tpcc-mysql-阿里云开发者社区

TPC(Tracsaction Processing Performance Council) 事务处理性能协会是一个评价大型数据库系统软硬件性能的非盈利的组织,TPC-C是TPC协会制定的,用来测试典型的复杂OLTP系统的性能。Tpcc-mysql是percona基于tpcc衍生出来的产品,专用于mysql基准测试,其源码放在bazaar上,因此需要先安装bazaar客户端。一 下载工具安装rp...

weixin_39553705的博客 122

通信算法之334:无人机侦测-DJI 大疆云哨接收机系列

【代码】通信算法之334:DJI 大疆 云哨接收机算法流程。

leegang12的专栏 836

mysql压力测试

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34000916的博客 83

Unreal5从入门到精通之如何在VR中使用3DUI

前面我们讲过《Unreal5从入门到精通之UMG的使用》一般制作游戏时,UI都是添加到屏幕视窗上面的,但是在制作VR时,我们往往需要制作一个3D的UI,放置在场景中,然后使用手柄的射线来和UI进行交互。今天我们就来讲解下,如何在VR中创作和交互3DUI首次操作会感觉好复杂,多多练习,当你熟悉了UE蓝图的操作后会发现,这只是一个常规的蓝图操作而已。祝大家在虚幻的学习过程中非常顺利。希望这篇博客对你有所帮助。

TxNet 1974

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Tpcc-MySQL测试并使用gnuplot生成图表

TPC(Tracsaction Processing Performance Council) 事务处理性能协会是一个评价大型数据库系统软硬件性能的非盈利的组织,TPC-C是TPC协会制定的,用来测试典型的复杂OLTP系统的性能。Tpcc-mysql是percona基于tpcc衍生出来的产品,专用于mysql基准测试,其源码放在bazaar上,因此需要先安装bazaar客户端。   项目地址: h

摘取天上星 1553

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

mysql 测试_mysql测试

1、sysbenchsysbench是跨平台的基准测试工具,支持多线程,支持多种数据库;主要包括以下几种测试:cpu性能磁盘io性能调度程序性能内存分配及传输速度POSIX线程性能数据库性能(OLTP基准测试)参考:2、mysqlslapmysqlslap 可以用于模拟服务器的负载,并输出计时信息。其被包含在 MySQL 5.1 的发行包中。测试时,可以指定并发连接数,可以指定 SQL 语句。如果...

weixin_34313315的博客 333

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

mysql 调试工具 鱼_mysql测试

1、sysbenchsysbench是跨平台的基准测试工具,支持多线程,支持多种数据库;主要包括以下几种测试:cpu性能磁盘io性能调度程序性能内存分配及传输速度POSIX线程性能数据库性能(OLTP基准测试)参考:2、mysqlslapmysqlslap 可以用于模拟服务器的负载,并输出计时信息。其被包含在 MySQL 5.1 的发行包中。测试时,可以指定并发连接数,可以指定 SQL 语句。如果...

weixin_32737183的博客 146

tpcc-mysql 压力测试

若是想知道数据库或集群在业务环境中的性能,就需要压测。 TPC-C TPC-C是TPC组织发布的一个测试规范,用来模拟测试复杂的在线事务处理系统(OLTP)。 它的测试结果包括每分钟事务数(tpmC),以及每事务的成本(Price/tpmC)。TPC-C测试相比sysbench更能模拟真实压力。 tpcc-mysql tpcc-mysql是percona开发出来的针对mysql的基于...

心有猛虎 细嗅蔷薇 1610

tpcc-mysql_mysql性能测试工具之tpcc-mysql

官网下载地址:http://imysql.com/wp-content/uploads/2014/09/tpcc-mysql-src.tgz1.用bzr客户端下载软件包[root@tong1 ~]# yum install bzr -y[root@tong1 ~]# bzr branch lp:~percona-dev/perconatools/tpcc-mysql[root@tong1 ~]# ...

weixin_32392989的博客 178
上一篇: 数据库性能测试之Sysbench基准测试
下一篇: MySQL的5种特殊设计架构
盲流子开发
博客等级 码龄10年 1648粉丝 105原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值