tpcc-mysql安装、使用、结果解读

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: tpcc-mysql安装、使用、结果解读

关于tpcc-mysql

TPC-C是专门针对联机交易处理系统(OLTP系统)的规范,一般情况下我们也把这类系统称为业务处理系统。


tpcc-mysql是percona基于TPC-C(下面简写成TPCC)衍生出来的产品,专用于MySQL基准测试。其源码放在launchpad上,用bazaar管理。

2tpcc-mysql安装

launchpad上的项目可以使用bzr客户端(类似cvs/svn)将源码下载到本地:

cd /tmp

bzr branch lp:~percona-dev/perconatools/tpcc-mysql

也可从MySQL中文网的百度云盘共享快速下载:

http://pan.baidu.com/s/1pJr19CR

在源码目录下,直接执行 make 即可完成编译。当然了,mysql lib包是需要提前安装,如果不在默认目录下的话,可以手工修改 Makefile,指定正确的 mysql_config 目录即可,让mysql_config自己去找到对应的 libs 和 include 路径。

3tpcc-mysql相关数据表用途介绍

tpcc-mysql的业务逻辑及其相关的几个表作用如下:


New-Order:新订单,主要对应 new_orders 表

Payment:支付,主要对应 orders、history 表

Order-Status:订单状态,主要对应 orders、order_line 表

Delivery:发货,主要对应 order_line 表

Stock-Level:库存,主要对应 stock 表


其他相关表:

客户:主要对应 customer 表

地区:主要对应 district 表

商品:主要对应 item 表

仓库:主要对应 warehouse 表

4开始测试

1、初始化表结构及测试数据

#创建tpcc100库,初始化DDL

mysqladmin create tpcc100

mysql -f tpcc100 < create_table.sql

mysql -f tpcc100 < add_fkey_idx.sql


#初始化测试数据,加载100个仓库的测试数据,仓库数越大,测试数据也越大,整个过程也越慢,需要根据服务器配置适当调整

tpcc_load localhost tpcc tpcc_user tpcc_passwd 100


2、开始测试

#下面的例子中,模拟对100个仓库(-w 100),并发128个线程(-c 128),预热5分钟(-r 300),持续压测1小时(-l 3600)

tpcc_start -hlocalhost -utpcc_user -ptpcc_password -d tpcc100 -w 100 -c 128 -r 300 -l 3600

5压测结果解读

-- 每10秒钟输出一次压测数据

10, 8376(0):2.744|3.211, 8374(0):0.523|1.626, 838(0):0.250|0.305, 837(0):3.241|3.518, 839(0):9.086|10.676

20, 8294(0):2.175|2.327, 8292(0):0.420|0.495, 829(0):0.206|0.243, 827(0):2.489|2.593, 827(0):7.214|7.646


上面的压测过程输出解读见下:

-- 以逗号分隔,共6列

-- 第一列,第N次10秒

-- 第二列,总成功执行压测的次数(总推迟执行压测的次数):90%事务的响应时间|本轮测试最大响应时间

-- 第三列,新订单业务成功执行次数(推迟执行次数):90%事务的响应时间|本轮测试最大响应时间

-- 第四列,支付业务的结果,后面几个的意义同上

-- 第五列,发货业务的结果,后面几个的意义同上

-- 第六列,库存业务的结果,后面几个的意义同上


-- 第一次粗略结果统计

[0] sc:100589 lt:0 rt:0 fl:0 -- New-Order,新订单业务成功(success,简写sc)次数,延迟(late,简写lt)次数,重试(retry,简写rt)次数,失败(failure,简写fl)次数

[1] sc:100552 lt:0 rt:0 fl:0 -- Payment,支付业务统计,其他同上

[2] sc:10059 lt:0 rt:0 fl:0 -- Order-Status,订单状态业务统计,其他同上

[3] sc:10057 lt:0 rt:0 fl:0 -- Delivery,发货业务统计,其他同上

[4] sc:10058 lt:0 rt:0 fl:0 -- Stock-Level,库存业务统计,其他同上


测试结果统计分析

(all must be [OK]) -- 下面所有业务逻辑结果都必须为 OK 才行

[transaction percentage]

Payment: 43.47% (>=43.0%) [OK] -- 支付成功次数(上述统计结果中 sc + lt)必须大于43.0%,否则结果为NG,而不是OK

Order-Status: 4.35% (>= 4.0%) [OK] -- 订单状态,其他同上

Delivery: 4.35% (>= 4.0%) [OK] -- 发货,其他同上

Stock-Level: 4.35% (>= 4.0%) [OK] -- 库存,其他同上

[response time (at least 90% passed)] -- 响应耗时指标必须超过90%通过才行

New-Order: 100.00% [OK] -- 下面几个响应耗时指标全部 100% 通过

Payment: 100.00% [OK]

Order-Status: 100.00% [OK]

Delivery: 100.00% [OK]

Stock-Level: 100.00% [OK]


以及最终的tpcc测试结果

50294.500 TpmC -- TpmC结果值,即每分钟的事务数

6其他推荐

TPCC-MySQL使用手册:

http://imysql.com/2012/08/04/tpcc-for-mysql-manual.html


搜狐视频:MySQL DBA成长之路 - tpcc-mysql安装、使用、结果解读:

http://my.tv.sohu.com/us/2743676/74406856.shtml



相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
30天前
|
安全 关系型数据库 MySQL
mysql8安装
本文介绍了在 CentOS 7 上安装 MySQL 5.7 的详细步骤,包括下载、环境准备、系统配置、安装过程及启动方法。首先通过wget下载MySQL压缩包并解压至指定目录,接着进行主机名修改、依赖安装、用户与用户组创建、ulimit配置等环境准备工作。随后,对操作系统环境进行调整,如文件句柄和进程数的设置、内核参数优化、SELinux和防火墙的关闭等。最后,完成MySQL的安装配置,创建数据和日志目录,初始化MySQL,并设置启动脚本和环境变量,确保MySQL能够正常运行。
70 4
|
1月前
|
安全 关系型数据库 MySQL
Linux下安装mysql8.0(以tar.xz包安装--编译安装)
通过上述步骤,您完成了从下载、编译、安装到配置MySQL 8.0的全过程。此过程虽然较为复杂,但提供了对MySQL安装环境的完全控制,有助于满足特定的部署需求。在实际操作中,根据具体的系统环境,可能还需调整部分步骤或解决未预见的依赖问题。始终参考官方文档和社区资源,保持安装过程与最新版本的兼容性。
552 67
|
2天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
14 4
|
24天前
|
关系型数据库 MySQL Linux
Docker安装Mysql5.7,解决无法访问DockerHub问题
当 Docker Hub 无法访问时,可以通过配置国内镜像加速来解决应用安装失败和镜像拉取超时的问题。本文介绍了如何在 CentOS 上一键配置国内镜像加速,并成功拉取 MySQL 5.7 镜像。
208 2
Docker安装Mysql5.7,解决无法访问DockerHub问题
|
8天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。通过具体案例,读者可以了解如何准备环境、下载源码、编译安装、配置服务及登录 MySQL。编译源码安装虽然复杂,但提供了更高的定制性和灵活性,适用于需要高度定制的场景。
30 3
|
9天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。
本文介绍了在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。内容涵盖准备工作、下载源码、编译安装、配置服务、登录设置及实践心得,帮助读者根据需求选择最适合的安装方法。
17 2
|
11天前
|
存储 SQL 关系型数据库
2024Mysql And Redis基础与进阶操作系列(1)作者——LJS[含MySQL的下载、安装、配置详解步骤及报错对应解决方法]
Mysql And Redis基础与进阶操作系列(1)之[MySQL的下载、安装、配置详解步骤及报错对应解决方法]
|
11天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
51 2
|
24天前
|
SQL Oracle 关系型数据库
安装最新 MySQL 8.0 数据库(教学用)
安装最新 MySQL 8.0 数据库(教学用)
98 4
|
1月前
|
tengine 关系型数据库 MySQL
Tengine、Nginx安装MySQL数据库命令教程
本指南详细介绍了在Linux系统上安装与配置MySQL数据库的步骤。首先通过下载并安装MySQL社区版本,接着启动MySQL服务,使用`systemctl start mysqld.service`命令。若启动失败,可尝试使用`sudo /etc/init.d/mysqld start`。利用`systemctl status mysqld.service`检查MySQL的服务状态,确保其处于运行中。通过日志文件获取初始密码,使用该密码登录数据库,并按要求更改初始密码以增强安全性。随后创建一个名为`tengine`的数据库,最后验证数据库创建是否成功以及完成整个设置流程。
下一篇
无影云桌面