openGauss使用BenchmarkSQL进行性能测试(下)

news2025/3/17 21:02:08

上一篇我们分享了测试方法,本篇我们将发起测试及测试结果。

背景

本文提供openGauss使用BenchmarkSQL进行性能测试的方法和测试数据报告。

BenchmarkSQL,一个JDBC基准测试工具,内嵌了TPC-C测试脚本,支持很多数据库,如PostgreSQL、Oracle和Mysql等。

TPC-C是专门针对联机交易处理系统(OLTP系统)的规范,一般情况下我们也把这类系统称为业务处理系统。几乎所有在OLTP市场提供软硬平台的国外主流厂商都发布了相应的TPC-C测试结果,随着计算机技术的不断发展,这些测试结果也在不断刷新。

六、BenchmarkSQL主机发起测试

1. 导入测试数据

cd  /root/soft/benchmarksql-5.0/run
[root@localhost run]#  ./runDatabaseBuild.sh props.openGauss    ## 执行前,请务必将props.openGauss文件中的所有注释和多余空格删除,否则可能报错

特别说明上一步脚本执行后请检查库表是否创建、数据是否加载成功如过未成功,请查看.sh脚本及执行日志进行判断,如果有必要则请手工执行加载脚本如下

[root@localhost run]# ./runLoader.sh props.openGauss

2. 运行TPCC测试

[root@localhost run]# ./runBenchmark.sh props.openGauss
19:04:56,061 [main] INFO   jTPCC : Term-00, 
19:04:56,070 [main] INFO   jTPCC : Term-00, +-------------------------------------------------------------+
19:04:56,070 [main] INFO   jTPCC : Term-00,      BenchmarkSQL v5.0
19:04:56,070 [main] INFO   jTPCC : Term-00, +-------------------------------------------------------------+
19:04:56,070 [main] INFO   jTPCC : Term-00,  (c) 2003, Raul Barbosa
19:04:56,070 [main] INFO   jTPCC : Term-00,  (c) 2004-2016, Denis Lussier
19:04:56,072 [main] INFO   jTPCC : Term-00,  (c) 2016, Jan Wieck
19:04:56,072 [main] INFO   jTPCC : Term-00, +-------------------------------------------------------------+
19:04:56,072 [main] INFO   jTPCC : Term-00, 
19:04:56,072 [main] INFO   jTPCC : Term-00, db=postgres
19:04:56,072 [main] INFO   jTPCC : Term-00, driver=org.postgresql.Driver
19:04:56,072 [main] INFO   jTPCC : Term-00, conn=jdbc:postgresql://192.168.52.3:26000/tpcc
19:04:56,072 [main] INFO   jTPCC : Term-00, user=benchmarksql
19:04:56,072 [main] INFO   jTPCC : Term-00, 
19:04:56,072 [main] INFO   jTPCC : Term-00, warehouses=2
19:04:56,072 [main] INFO   jTPCC : Term-00, terminals=2
19:04:56,073 [main] INFO   jTPCC : Term-00, runMins=5
19:04:56,073 [main] INFO   jTPCC : Term-00, limitTxnsPerMin=0
19:04:56,073 [main] INFO   jTPCC : Term-00, terminalWarehouseFixed=false
19:04:56,073 [main] INFO   jTPCC : Term-00, 
19:04:56,073 [main] INFO   jTPCC : Term-00, newOrderWeight=45
19:04:56,073 [main] INFO   jTPCC : Term-00, paymentWeight=43
19:04:56,074 [main] INFO   jTPCC : Term-00, orderStatusWeight=4
19:04:56,074 [main] INFO   jTPCC : Term-00, deliveryWeight=4
19:04:56,074 [main] INFO   jTPCC : Term-00, stockLevelWeight=4
19:04:56,074 [main] INFO   jTPCC : Term-00, 
19:04:56,074 [main] INFO   jTPCC : Term-00, resultDirectory=my_result_%tY-%tm-%td_%tH%tM%tS
19:04:56,074 [main] INFO   jTPCC : Term-00, osCollectorScript=./misc/os_collector_linux.py
19:04:56,074 [main] INFO   jTPCC : Term-00, 
19:04:56,089 [main] INFO   jTPCC : Term-00, copied props.openGauss to my_result_2024-02-28_190456/run.properties
19:04:56,089 [main] INFO   jTPCC : Term-00, created my_result_2024-02-28_190456/data/runInfo.csv for runID 34
19:04:56,089 [main] INFO   jTPCC : Term-00, writing per transaction results to my_result_2024-02-28_190456/data/result.csv
19:04:56,090 [main] INFO   jTPCC : Term-00, osCollectorScript=./misc/os_collector_linux.py
19:04:56,090 [main] INFO   jTPCC : Term-00, osCollectorInterval=1
19:04:56,090 [main] INFO   jTPCC : Term-00, osCollectorSSHAddr=root@192.168.52.3
19:04:56,090 [main] INFO   jTPCC : Term-00, osCollectorDevices=net_ens33 blk_sda
19:04:56,169 [main] INFO   jTPCC : Term-00,
二月 28, 2024 7:04:56 下午 org.postgresql.core.v3.ConnectionFactoryImpl openConnectionImpl
信息: [93b50383-dbd7-400a-a99d-86f4ba0902a0] Try to connect. IP: 192.168.52.3:26000
二月 28, 2024 7:05:06 下午 org.postgresql.core.v3.ConnectionFactoryImpl openConnectionImpl
信息: [192.168.52.4:58872/192.168.52.3:26000] Connection is established. ID: 93b50383-dbd7-400a-a99d-86f4ba0902a0
二月 28, 2024 7:05:06 下午 org.postgresql.core.v3.ConnectionFactoryImpl openConnectionImpl
信息: Connect complete. ID: 93b50383-dbd7-400a-a99d-86f4ba0902a0
19:05:06,307 [main] INFO   jTPCC : Term-00, C value for C_LAST during load: 173
19:05:06,307 [main] INFO   jTPCC : Term-00, C value for C_LAST this run:    246
19:05:06,307 [main] INFO   jTPCC : Term-00,                                                                                    二月 28, 2024 7:05:06 下午 org.postgresql.core.v3.ConnectionFactoryImpl openConnectionImplMB          
信息: [f43d5730-4a2d-4679-bf40-8ca74c9a2498] Try to connect. IP: 192.168.52.3:26000
二月 28, 2024 7:05:16 下午 org.postgresql.core.v3.ConnectionFactoryImpl openConnectionImpl
信息: [192.168.52.4:58874/192.168.52.3:26000] Connection is established. ID: f43d5730-4a2d-4679-bf40-8ca74c9a2498
二月 28, 2024 7:05:16 下午 org.postgresql.core.v3.ConnectionFactoryImpl openConnectionImpl
信息: Connect complete. ID: f43d5730-4a2d-4679-bf40-8ca74c9a2498
二月 28, 2024 7:05:16 下午 org.postgresql.core.v3.ConnectionFactoryImpl openConnectionImpl
信息: [204511eb-81ef-4c16-a0ab-9f64a4b2fa55] Try to connect. IP: 192.168.52.3:26000
二月 28, 2024 7:05:26 下午 org.postgresql.core.v3.ConnectionFactoryImpl openConnectionImpl
信息: [192.168.52.4:58876/192.168.52.3:26000] Connection is established. ID: 204511eTerm-00, Running Average tpmTOTAL: 7005.81  19:10:26,411 [Thread-2] INFO   jTPCC : Term-00, / 29MB                                                                          19:10:26,412 [Thread-2] INFO   jTPCC : Term-00,                                                                                 19:10:26,412 [Thread-2] INFO   jTPCC : Term-00, Measured tpmC (NewOrders) = 3160.65                     
19:10:26,413 [Thread-2] INFO   jTPCC : Term-00, Measured tpmTOTAL = 7005.82
19:10:26,413 [Thread-2] INFO   jTPCC : Term-00, Session Start     = 2024-02-28 19:05:26
19:10:26,413 [Thread-2] INFO   jTPCC : Term-00, Session End       = 2024-02-28 19:10:26
19:10:26,413 [Thread-2] INFO   jTPCC : Term-00, Transaction Count = 35032

说明执行前,请务必将props.openGauss.1000w文件的所有注释和多余空格删除,否则可能报错。 terminals参数设置有大小范围要求,太大会报错:ERROR  jTPCC : Term-00, Invalid number of terminals!y。

重跑:./runDatabaseDestroy.sh props.opengauss  //清理数据。或将5.3中的备份恢复

七、生成报告查看测试结果

1. 生成报告

测试结束后,run目录下会生成一个新目录:my_result_%tY-%tm-%td_%tH%tM%tS。使用 generateReport.sh脚本创建具有图形的 HTML 文件:

[root@localhost run]# ./generateReport.sh my_result_2024-02-28_190456/
Generating my_result_2024-02-28_190456//tpm_nopm.png ... OK
Generating my_result_2024-02-28_190456//latency.png ... OK
Generating my_result_2024-02-28_190456//cpu_utilization.png ... OK
Generating my_result_2024-02-28_190456//dirty_buffers.png ... OK
Generating my_result_2024-02-28_190456//blk_sda_iops.png ... OK
Generating my_result_2024-02-28_190456//blk_sda_kbps.png ... OK
Generating my_result_2024-02-28_190456//net_ens33_iops.png ... OK
Generating my_result_2024-02-28_190456//net_ens33_kbps.png ... OK
Generating my_result_2024-02-28_190456//report.html ... OK

随后会在my_result_* 目录下生成一个html文件和数张图片,下载到本地,在浏览器中打开report.html,可以看到tpmc的曲线和系统硬件监控信息。

2. html报告查看

八、关于BenchmarkSQL

1. BenchmarkSQL的基本原理

 我们来了解BenchmarkSQL的基本原理。BenchmarkSQL基于Java开发,使用JDBC(Java Database Connectivity)连接数据库。它可以模拟多个用户同时对数据库执行事务操作,比如插入、查询、更新和删除数据,以及并发访问数据库的能力。通过模拟真实的数据库负载,BenchmarkSQL可以测试数据库在高并发情况下的性能表现。

2.TPCC

 TPC(Transaction Processing Council)-C是一个在线事务处理基准
TPC基准C于1992年7月获得批准,是联机事务处理(OLTP)基准,具有多种事务类型、更复杂的数据库和整体执行结构。TPC-C涉及5个不同类型和复杂性的并发事务的混合,这些事务要么在线执行,要么排队延迟执行。目标数据库由九种类型的表组成,具有大范围的记录和数量大小。TPC-C的度量单位是每分钟事务数(tpmC)。虽然基准描述的是批发供应商的活动,但TPC-C并不局限于任何特定业务部门的活动,而是代表任何必须管理、销售或分销产品或服务的行业。

3.BenchmarkSQL

BenchmarkSQL是用Java语言实现的,使用JDBC对SQL数据库进行压力测试。整个体系结构是一系列数据结构、队列和线程组,用于处理模拟终端、用户和应用程序线程。

它的体系结构允许BenchmarkSQL驱动多达数千个仓库的TPC-C配置(称为缩放因子),而不会压倒测试驱动程序本身的作业调度器。然而,它能够在不牺牲TPC-C中最重要的测量之一的情况下做到这一点,即终端用户体验到的终端响应时间。

本篇就分享到这里了,欢迎小伙伴们交流~

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

百度paddleocr GPU版部署

显卡:NVIDIA GeForce RTX 4070,Nvidia驱动程序版本:537.13 Nvidia驱动程序能支持的最高cuda版本:12.2.138 Python:python3.10.11。试过python3.12,安装paddleocr失败,找不到相关模块。 飞桨版本…

使用C#的winform控制数据库实例服务的运行状态

一、得到sqlserver的实例名 二、引用对应的程序集和命名空间 using System.ServiceProcess; C#操作服务要用的类 ServiceController 声明类 private ServiceController serviceController new ServiceController("MSSQLSERVER"); 三、判断服务状态 serviceCon…

centos云服务器安装cs(cobaltstrike4.0)教程

1、先安装JAVA环境 mkdir download #创建download目录 cd download #进入download目录 mkdir java1.8 #在download目录下再创建java1.8目录 cd java1.8 #进入java1.8目录 wget https://repo.huaweicloud.com/java/jdk/8u201-b09/jdk-8u201-linux-x64.tar.gz #下载jdk压缩包 tar…

HarmonyOS NEXT应用开发—验证码布局

介绍 本示例介绍如何使用Text组件实现验证码场景,并禁用对内容的选中、复制、光标。 效果图预览 使用说明 单击组件可弹出输入法在进行验证码输入时,无法对中间单个数字进行更改,无法选中输入内容,无光标 实现思路 因为要禁用…

c语言实现https客户端 源码+详细注释(OpenSSL下载,visual studio编译器环境配置)

OpenSSL的下载和环境配置 请参考:openssl下载安装教程 步骤:官网下载->安装到选定目录->配置环境变量->打开命令窗口检查是否安装成功 注意: 打开命令窗口(快捷键winr,在弹出窗口内输入cmd按回车)&#xff0…

FPGA高端项目:FPGA基于GS2971+GS2972架构的SDI视频收发+OSD动态字符叠加,提供1套工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐本博已有的 SDI 编解码方案本方案的SDI接收发送本方案的SDI接收图像缩放应用本方案的SDI接收纯verilog图像缩放纯verilog多路视频拼接应用本方案的SDI接收HLS图像缩放HLS多路视频拼接应用本方案的SDI接收HLS多路视频融合叠加应用本方案的S…

用连续自然数之和来表达整数 - 华为OD统一考试(C卷)

OD统一考试(C卷) 分值: 100分 题解: Java / Python / C 题目描述 一个整数可以由连续的自然数之和来表示。给定一个整数,计算该整数有几种连续自然数之和的表达式,且打印出每种表达式。 输入描述 一个目…

1.Python数据分析—数据分析与挖掘详讲

1.Python数据分析—数据分析与挖掘详讲 一个人简介二数据分析与挖掘概述三什么是数据分析和挖掘四数据分析与挖掘在不同领域的应用4.1医疗领域:4.1.1 建立疾病数据库:4.1.2 临床决策支持:4.1.3 疾病预警和监控: 4.2 电子商务领域&…

还原wps纯粹的编辑功能

1.关闭稻壳模板: 1.1. 启动wps(注意不要乱击稻壳模板,点了就找不到右键菜单了) 1.2. 在稻壳模板选项卡右击:选不再默认展示 2.关闭托盘中wps云盘图标:右击云盘图标/同步与设置: 2.1.关闭云文档同步 2.2.窗口选桌面应用…

【Unity+Vuforia】AR 发布安卓的设置

Player Settings > Resolution and Presentation > Default Orientation portrait Player Settings > Other Settings > Auto Graphics API 取消勾选 Player Settings > Other Settings > Graphics APIs 选择OpenGLES3删除其他的 Player Settings…

【矩阵】54. 螺旋矩阵【中等】

螺旋矩阵 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] 解题思路 1、模拟顺时针螺旋顺序遍历矩阵…

pytorch之诗词生成6--eval

先上代码: import tensorflow as tf from dataset import tokenizer import settings import utils# 加载训练好的模型 model tf.keras.models.load_model(r"E:\best_model.h5") # 随机生成一首诗 print(utils.generate_random_poetry(tokenizer, model)…

Vscode中关于Java的一些问题

前言 在使用Vscode的时候,总是会有这么一种感觉:有时得这样,有时得那样,这让我甚是困惑,于是写下来这篇解答文章 为什么java文件有时候会有class文件,有时候没有 在编写Java代码时,我会有一种…

自习室预订系统|基于springboot框架+ Mysql+Java+B/S架构的自习室预订系统设计与实现(可运行源码+数据库+设计文档+部署说明)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 目录 前台功能效果图 学生功能模块 管理员功能登录前台功能效果图 系统功能设计 数据库E-R图设计 lunwen参…

R语言语法基础(说人话版)

在Rstudio中使用ctrl回车来执行某一行的代码 在R语言中,通常不需要像C语言一样在每条语句的结尾添加分号来表示语句结束。R语言是一种脚本语言,它使用换行符来分隔语句,因此分号通常是可选的,除非你想在同一行上写多个语句。在R中…

QMI8658芯片I2C驱动开发指南

这个芯片纯国产挺好用的,电路很好设计,我这垃圾焊功,纯手焊,,居然能用。 第一部分 硬件连接 画的很简陋,看看就可以了,这里I2C总线需要接10K上拉没有画出来,这个需要注意一下。 …

鸿蒙实战开发:【分布式软总线组件】

简介 现实中多设备间通信方式多种多样(WIFI、蓝牙等),不同的通信方式使用差异大,导致通信问题多;同时还面临设备间通信链路的融合共享和冲突无法处理等挑战。分布式软总线实现近场设备间统一的分布式通信管理能力,提供不区分链路…

邮件自动化:简化Workplace中的操作

电子邮件在职场中的使用对于企业和组织的日常活动起着重要的作用。电子邮件不再仅仅是一种通信方式,已经成为现代企业和组织实施日常运营的关键要素。 除了通信,电子邮件对于需求生成、流程工作流、交易审批以及各种其他与业务相关的活动至关重要。在当…

【C++设计模式】策略模式

文章目录 前言一、策略模式是什么?二、策略模式的实现原理三、UML图四、代码实现总结 前言 策略模式是一种行为设计模式,它允许在运行时选择算法的行为。通过将每个算法封装到具有共同接口的独立类中,客户端可以在不改变自身代码的情况下选择…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:RelativeContainer)

相对布局组件,用于复杂场景中元素对齐的布局。 说明: 该组件从API Version 9开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 规则说明 容器内子组件区分水平方向,垂直方向: 水平方向为left&…