openGauss学习笔记-271 openGauss性能调优-TPCC性能调优测试指导-测试MOT-TPCC性能

文章目录

    • openGauss学习笔记-271 openGauss性能调优-TPCC性能调优测试指导-测试MOT-TPCC性能
      • 271.1 TPC-C简介
      • 271.2 系统级优化
      • 271.3 BenchmarkSQL:开源TPC-C工具
      • 271.4 运行基准
      • 271.5 结果报告

openGauss学习笔记-271 openGauss性能调优-TPCC性能调优测试指导-测试MOT-TPCC性能

本章节主要介绍openGauss数据库内核基于鲲鹏服务器和openEuler操作系统,为了达到最佳TPMC性能所依赖的关键系统级调优。

271.1 TPC-C简介

TPC-C基准是衡量联机事务处理(OLTP)系统性能的行业标准基准。它基于一个复杂的数据库和许多不同的事务类型。这些事务类型在此基准上执行。TPC-C基准测试既不依赖硬件,也不依赖软件,因此可以在每个测试平台上运行。基准模型的官方概述,见tpc.org网站(http://www.tpc.org/default5.asp)。

该数据库由9个不同结构的表组成,因此也包括9种类型的数据。每个表的数据大小和数量不同。在数据库上混合执行五种不同类型和复杂性的并发事务。这些大部分是在线事务或者部分排队等待延迟批处理。由于这些表竞争有限的系统资源,许多系统组件都有压力,数据更改以各种方式执行。

表 1 TPC-C数据库结构

条目数
仓库n
供货商品100,000
库存n x 100,000
地区n x 10
客户3000/区,30,000/仓库
订单客户数量(初始值)
新增订单30%订单(初始值)
定单分录~10/单
历史记录客户数量(初始值)

事务组合代表从订单输入到订单交付的完整业务处理。具体来说,所提供的组合旨在产生相等数量的新订单事务和支付事务,并且为每十个新订单事务产生一个交付事务、一个订单状态事务和一个库存水平事务。

表 2 TPC-C事务比例

事务级别≥4%占所有事务份额
TPC-C新订单≤ 45%
支付≥ 43%
订单状态≥ 4%
交付≥4%(批次)
库存水平≥ 4%

有两种方法来执行事务:作为存储过程(允许更高的吞吐量)和以标准交互式SQL模式执行。

性能指标:tpm-C

tpm-C指标是每分钟执行的新订单事务数。考虑到事务中所需的组合以及广泛的复杂性和类型,此指标最接近地模拟一个全面的业务活动,而不仅仅是一个或两个事务或计算机操作。因此,tpm-C指标被认为是业务吞吐量的指标。

tpm-C指标单位表示为每分钟事务数-C,而C表示TPC-C特定基准。

img 说明:

官方TPC-C基准规范可访问:http://www.tpc.org/tpc_documents_current_versions/pdf/tpc-c_v5.11.0.pdf。本规范中的一些规则在行业中难以实现,因为对行业现状来说这些规则太严格了。例如:扩容规则(a) tpm-C/Warehouse必须大于9且小于12.86(要达到较高的tpm-C率,需要很高的仓库费率。这就意味着需要非常大的数据库和内存容量)以及规则(b)10倍终端*仓库(意味着大量的模拟客户端)。

271.2 系统级优化

请按照MOT部署中的说明进行操作。下面介绍openGauss数据库在华为TaiShan服务器和Euler 2.8操作系统上部署时系统级的关键优化点,以达到极致性能。

271.3 BenchmarkSQL:开源TPC-C工具

可以使用BenchmarkSQL测试TPCC,如下所示:

  • 下载benchmarksql:https://osdn.net/frs/g_redir.php?m=kent&f=benchmarksql%2Fbenchmarksql-5.0.zip
  • benchmarksql工具中的模式创建脚本需要调整为MOT语法,避免使用不支持的DDL。下载调整后的脚本:https://opengauss.obs.cn-south-1.myhuaweicloud.com/1.0.0/MOT-TPCC-Benchmark.tar.gz。该tar文件的内容包括sql.common.opengauss.mot文件夹和jTPCCTData.java文件,以及一个示例配置文件postgresql.conf和TPCC属性文件props.mot供参考。
  • 将sql.common.opengauss.mot文件夹放在run文件夹下与sql.common同级的文件夹,用下载的Java文件替换src/client/jTPCCTData.java文件。
  • 编辑run文件夹下的runDatabaseBuild.sh文件,将extraHistID从AFTER_LOAD列表中删除,以避免不支持的ALTER表DDL。
  • 将lib/postgres文件夹下的JDBC驱动替换为openGauss JDBC。驱动下载链接:https://opengauss.org/en/download/。

在下载的Java文件(与原始文件相比)中所做的唯一更改是注释错误日志打印,以进行序列化和重复键错误。这些错误在MOT中是正常的,因为MOT使用的是乐观并发控制(OCC)机制。

img 说明: 基准测试使用标准交互式SQL模式执行,没有存储过程。

271.4 运行基准

任何人都可以启动服务器,运行benchmarksql脚本。

运行基准测试:

  1. 进入benchmarksql运行文件夹,将sql.common重命名为sql.common.orig。
  2. 创建sql.common到sql.common.opengauss.mot的链接,用于测试MOT。
  3. 启动数据库服务器。
  4. 配置客户端props.pg文件。
  5. 运行基准测试。

271.5 结果报告

  • CLI结果

    BenchmarkSQL结果应如下所示:

    img

    随着时间的推移,基准测量并平均已提交的事务。上面的例子是两分钟的基准测试。

    得分为271万tmp-C(每分钟新增订单数),占总承诺事务数的45%,即tpmTOTAL。

  • 详细结果报告

    详细结果报告示例:

图 1 详细结果报告
详细结果报告

img

BenchmarkSQL收集详细的性能统计数据和操作系统性能数据(如果配置了的话)。

这些信息可以显示查询的延迟,从而暴露与存储/网络/CPU相关的瓶颈。

华为TaiShan 2480 MOT TPC-C测试结果

2020年5月1日TPC-C基准测试,TaiShan 2480服务器(Arm/鲲鹏4路服务器)安装openGauss数据库,吞吐量达到479万tpmC。

下图展示了近乎线性的可扩展性:

图 2 华为TaiShan 2480 MOT TPC-C测试结果
华为TaiShan-2480-MOT-TPC-C测试结果

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/574475.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI智能写作工具,一键智能改写文章简单又高效

随着人们生活节奏的加快和工作压力的增大,如何在繁忙的日程中高效地写作成为了许多人的难题。但是随着人工智能技术的不断发展和应用,AI智能写作工具的出现,成为了许多人解决写作难题的利器。今天小编就来跟大家分享下AI智能写作工具&#xf…

自动驾驶行业源代码防泄漏解决方案

行业背景: 随着新一代信息通信及人工智能技术的快速发展,汽车作为这些新技术应用的重要载体,正在加速向智能化和网联化转型,以自动驾驶研发为主业的企业也越来越多,如何保障自己研发的算法、模型、系统不被研发人员离…

百度沈抖:智能,生成无限可能

4月16日,Create 2024百度AI开发者大会在深圳举行。会上,百度集团执行副总裁、百度智能云事业群总裁沈抖正式发布新一代智能计算操作系统——百度智能云万源。它能管理万卡规模的集群,极致地发挥GPU、CPU的性能;它有强大的大模型作…

创新科技赋能旅游服务:智慧文旅引领旅游发展新篇章,智能体验助力产业转型升级

随着科技的飞速发展和人们生活水平的提高,旅游业正迎来前所未有的发展机遇。创新科技在旅游服务领域的广泛应用,不仅提升了旅游体验的品质,也为旅游产业的转型升级注入了新的动力。智慧文旅作为旅游业与信息技术深度融合的产物,正…

【机器学习-12】数据探索---python主要的探索函数

在上一篇博客【机器学习】数据探索(Data Exploration)—数据质量和数据特征分析中,我们深入探讨了数据预处理的重要性,并介绍了诸如插值、数据归一化和主成分分析等关键技术。这些方法有助于我们清理数据中的噪声、消除异常值,以及降低数据的…

AI视频教程下载:用ChatGPT和 MERN 堆栈构建 SAAS 项目

这是一个关于 掌握ChatGPT 开发应用的全面课程,它将带领你进入 AI 驱动的 SAAS 项目的沉浸式世界。该课程旨在使你具备使用动态的 MERN 堆栈和无缝的 Stripe 集成来构建强大的 SAAS 平台所需的技能。 你将探索打造智能解决方案的艺术,深入研究 ChatGPT 的…

PM2管理器无法使用解决方法

之前的项目全是依靠PM2管理器部署的,部署快速,也便于管理 但是宝塔实在是bug毛病太多,最近这两天又出毛病了 这次的问题是在PM2管理器的node版本中无法进行版本切换,如果是第一次使用PM2的话甚至无法设置node版本,之前…

docker 集群管理实战mesos+zookeeper+marathon(一)

一 实验环境 1.1 系统版本,本实验使用cnetos7.9版本镜像 1.2 准备5台虚拟机,其中3台master,两台slave,使用克隆的方式 1.3 使用远程连接工具登录 1.4 修改主机名 1.5 设置域名映射 每个虚拟机都配置一下,这里就演示一…

区块链基础——区块链应用架构概览

目录 区块链应用架构概览: 1、区块链技术回顾 1.1、以太坊结点结构 1.2、多种应用场景 2、区块链应用架构概览 2.1、传统的Web2 应用程序架构 2.2、Web3 应用程序架构——最简架构 2.3、Web3 应用程序架构——前端web3.js ether.js 2.4、Web3 应用程序架构—…

浅谈菊风实时音视频 (RTC)与实时操作系统 (RTOS) 在智能硬件领域应用

近年来,菊风通过实时音视频赋能智能手表、智能门禁、智能门锁/门铃、智能眼镜等数十种智能硬件,与一众合作伙伴共同探索在IoT智能硬件领域的不同场景应用,积累了丰富的实践经验。在智能硬件中,RTOS因其轻量化的系统内核&#xff0…

C#基础之函数基础

函数 文章目录 1、函数基础1、概念2、函数位置3、基本语法4、实际运用5、return 2、ref 和 out1、ref 和 out 使用2、区别思考 登录 3、变长参数和参数默认值1、变长参数2、参数默认值 4、函数重载5、递归函数思考1 阶乘思考2 阶乘相加思考3 竹竿减半思考4 递归循环输出 1、函数…

多客圈子交友系统 uniapp+thinkphp6适配小程序/H5/app/api全开源,多款插件自选,支持个性定制!

网上交友的优点包括: 1. 方便:网上交友可以随时随地进行,不受时间和空间的限制,方便且高效。 2. 匿名性:网上交友可以实现匿名性,用户可以匿名地搜索、聊天或交换信息,保护个人隐私和安全。 3.…

RE | BUUCTF 刮开有奖1

题目:BUUCTF 刮开有奖1 参考: BUUCTF 刮开有奖(特别详细了,尽自己全力理解所写)(这是主参考,写得很详细 BUUCTF_刮开有奖(主参考的参考,思路很清晰 我是大菜鸡…尽力写自…

报错:图片验证码接口对接vue+springboot(下一个笔记会记录整个验证码的代码)

问题:空指针异常ai: 根据错误堆栈信息中提供的方法调用位置,看起来空指针异常是在 AuthCodeServiceImpl 类的 authUserCoded 方法的第 41 行发生的。 为了解决这个问题,你可以检查 AuthCodeServiceImpl 类中 authUserCoded 方法的第 41 行&am…

Qt xml示范

1.数据格式 #ifndef XML_DATA_H #define XML_DATA_H#include<QWidget>struct Student {int s_id;QString s_name;double s_math_score;double s_english_score;}; struct Teacher{int t_id;QString t_name;QVector<Student> t_students_v; };#endif // XML_DATA_H…

【JavaEE网络】TCP/IP协议:细节与应用

目录 TCP/IP协议协议格式传输层重点协议UDP协议UDP协议端格式 UDP的特点TCP协议TCP协议端格式 TCP的特点 TCP/IP协议 协议格式 应用层&#xff08;后端开发必知必会&#xff09;&#xff1a;这一层也有很多现成的协议&#xff08;后面还会重点介绍HTTP协议&#xff0c;这是做…

从0开始用C写贪吃蛇(基于链表)

目录 1. 游戏背景 2. 游戏效果演示​编辑​编辑​编辑 3. 实现目标 4. 技术要点 5. 控制台程序 5.1 设置控制台窗口的长宽和名字 5.2 控制台屏幕上的坐标COORD 6.Win32 API 6.1 GetStdHandle 6.2 GetConsoleCursorInfo 6.3 CONSOLE_CURSOR_INFO 6.4 SetConsole…

CSS 之 transition过渡动画

一、简介 ​ CSS 制作 Web 动画有两种方式&#xff1a; 帧动画&#xff08;Keyframe Animation&#xff09;和过渡动画&#xff08;Transition Animation&#xff09;。针对不同的业务场景中&#xff0c;我们应该选择不同的动画方式&#xff0c;通常来说&#xff1a;对于交互元…

iOS runtime

—参考文章— 暂时没有 一、如何在Xcode中使用runtime Xcode默认是不建议开发者使用runtime的&#xff0c;所以在Xcode直接使用runtime的语法是会报错误的。 如果要在Xcode中使用runtime的语法&#xff0c;是需要配置一下才可以使用&#xff0c;配置方法如下图&#xff1a; 首…

开源向量数据库比较:Chroma, Milvus, Faiss,Weaviate

语义搜索和检索增强生成(RAG)正在彻底改变我们的在线交互方式。实现这些突破性进展的支柱就是向量数据库。选择正确的向量数据库能是一项艰巨的任务。本文为你提供四个重要的开源向量数据库之间的全面比较&#xff0c;希望你能够选择出最符合自己特定需求的数据库。 什么是向量…