SmartX 携手 openGauss 社区发布联合方案评测与性能最佳实践 | 附优化方法与测试数据

近日,北京志凌海纳科技有限公司(以下简称 “SmartX”)携手 openGauss 社区完成了 openGauss 数据库基于 SmartX 超融合平台(SMTX OS)和 SmartX 分布式存储平台(SMTX ZBS)的性能测试和调优。

结果显示,在超融合环境中,openGauss 数据库性能提升了 41% ~ 174%;在分布式存储环境中,其最高值能可达到裸金属服务器 + 本地 NVMe SSD 性能的 110%。

背景

随着信创转型进入深水区,国产数据库的市场占有率快速增长,openGauss 作为重要的企业级开源关系数据库,其商业版本被广泛的应用于金融、政府、电信、能源等关键行业的核心场景。

为帮助用户更好的了解 openGauss 数据库在信创硬件平台及 SmartX 软件平台上的运行表现,SmartX 携手 openGauss 社区围绕 openGauss-5.1.0 企业版在 SmartX 超融合信创平台和 SmartX 分布式存储信创平台(基于鲲鹏芯片的信创服务器)上进行了一系列的性能测试和调优,并通过本文分享相关的测试结果与调优思路。

测试方法

本次测试使用 BenchmarkSQL 基于 TPC-C 基准执行测试,以便更客观地评价 openGauss 数据库在 SmartX 信创平台上的性能表现。

TPC-C

TPC-C 是一个业界公认的事务处理性能基准测试。它是 Transaction Processing Performance Council(TPC)发布的标准基准测试之一,用于测试在线事务处理(OLTP)系统的性能。TPC-C 测试基于一个虚拟的在线订单处理应用程序,它包括了一系列的事务操作,如客户订单、库存管理、交付处理等。TPC-C 测试结果以“每分钟事务处理量 (TPM)”为单位进行度量。

BenchmarkSQL

BenchmarkSQL 是一款可以使用 TPC-C 测试规范来运行基准测试的工具。具体来说,BenchmarkSQL 可以使用 TPC-C 测试规范中定义的事务操作和数据结构,来模拟一个 TPC-C 测试环境,并对数据库系统进行性能测试。因此,BenchmarkSQL 可以被认为是 TPC-C 测试的一种实现方式。

SMTX OS 超融合场景测试

1. 测试环境

*超融合测试场景中,需要留部分 CPU 和内存资源给 SMTX OS 作为开销。因此,openGauss 数据库无法独占物理机。

2. 测试模型

超融合场景测试分为两种部署架构:

部署架构 1:openGauss 数据库和 BenchmarkSQL 压力程序分别部署在不同的虚拟机(并运行在不同物理服务器节点),BenchmarkSQL 虚拟机的访问请求通过网络发送到 openGauss 数据库虚拟机进行处理。

部署架构 2:openGauss 数据库和 BenchmarkSQL 部署在同一虚拟机之内(openGauss 所在虚拟机),BenchmarkSQL 虚拟机的访问请求在虚拟机内部直接传送到 openGauss 数据库虚拟机进行处理,没有网络开销。

3. 测试模型

3.1 优化前的初步测试结果

部署架构 1 测试结果:(测试结果为 Neworder 交易,单位:TPM)

部署架构 2 测试结果:(测试结果为 Neworder 交易,单位:TPM)

3.2 主要调优手段

主机优化

  • BIOS 开启性能模式(CPU 最大性能)

超融合软件优化

  • 开启 boost 模式加速(降低 IO 延时)
  • 开启 RDMA 网络(降低网络延时)

虚拟机优化

  • 开启 vCPU 绑定(不共享 CPU)
  • 利用多个虚拟卷分开存放表空间以及日志文件(提升 IO 并发)

操作系统优化

  • 网络中断参数优化(降低网络延时)
  • 文件系统设置块大小为 8k(与数据库块大小对齐)
  • 关闭 swap 
  • 关闭内存大页
  • 启动参数优化(禁用不必要服务)

数据库参数优化

  • 为数据库进程绑定 numa 拓扑
  • 调整 redo log 大小
  • 开启/关闭异步 IO
  • ……

BenchmarkSQL 优化

  • 创建分表,引入索引(提升数据库并发访问)

3.3 调优前后测试结果对比

本次测试包含多项调优项目,但由于篇幅有限,无法逐一介绍调优效果,因此选择了两项提升幅度较大的调优项目给大家参考:

BenchmarkSQL 优化 – 创建分表

当 BenchmarkSQL 程序填充数据时,它主要通过调用脚本来创建数据库表格。然而,原始脚本只通过创建单一表格来进行填充,这会限制并发访问的优势。为了解决该问题,我们对创建脚本进行了优化,将数据分表存放,让数据库访问时可以获取多个表格的响应。

基于测试结果,我们可以得出以下结论:

  • 在默认情况下,分表后 tpmC 值有明显提升,增长区间为 17%~116%,且并发度越高,tpmC 值提升越明显。
  • 在数据库启用异步日志后,性能有较大提升(50% 以上),经后台监控查看,初步判断 IO 此时成为主要性能瓶颈。

IO 优化

由于观察到同步日志下,其性能会受到 IO 性能影响。因此我们对现有环境进行 IO 及运算能力的优化:

  • 加虚拟磁盘,分离日志文件和表空间放置在不同的虚拟磁盘。
  • 调整宿主机 profile。
  • vCPU NUMA 绑定。

经调优后,tpmC 性能提升了 16%~ 43%。

综合调优前后性能对比

在超融合场景下,经过多种手段调优后,tpmC 性能综合提升了 41% ~ 174%,性能提升效果非常明显。

SMTX ZBS 分布式存储场景测试

1. 测试环境

1.1 使用 iSCSI 方式时,计算端配置情况

1.2 使用 NVMe-oF 方式时,计算端配置情况

*分离式部署测试场景中, openGauss 数据库直接部署在物理机上,可完全独占这台服务器的所有资源。

2. 测试模型

分离式部署场景测试分为两种部署架构:

部署架构 1:openGauss 数据库服务器通过 iSCSI 协议连接 SMTX ZBS 分布式存储,这是一种连接分布式存储最常用(最通用)的协议,由于 iSCSI 协议性能开销较大,因此 IO 延时较高。

部署架构 2:为应对 IO 延时要求苛刻的数据库场景,SMTX ZBS 提供了高性能、低延时的 NVMe-oF 接入协议。openGauss 数据库服务器通过 NVMe-oF 协议接入存储可有效降低 IO 延时。

3. 测试内容

3.1 NVMe-oF 接入协议对比 iSCSI 协议的性能提升

在 SMTX ZBS 分离部署场景下沿用了前面章节 SMTX OS 超融合场景的调优手段,并额外增加了索引的优化,性能测试结果如下:

基于测试结果,我们可以得出以下结论:

  • 采用 NVMe-oF 接入协议,相比 iSCSI 接入协议在所有场景下均能获得性能提升,tpmC 性能提升比例在 9% ~ 25% 之间。

3.2 NVMe-oF 接入 ZBS 分布式存储对比本地 NVMe SSD 的测试结果

为帮助用户更好的理解测试结果,我们还增加了裸金属服务器 + 本地 NVMe SSD 的性能测试,其采用本地 NVMe SSD 裸盘格式化后用作数据库的存储空间进行测试。

其中,BenchmarkSQL 程序也部署在 openGauss 数据库所在的裸金属服务器中。

众所周知,NVMe 裸盘的 IO 性能是非常优秀的,因为我们以此模型为参照物,对比 SMTX ZBS 分布式存储在 NVMe-oF 接入协议下的性能表现,其测试结果如下:

基于测试结果,我们可以得出以下结论:

  • 大部分场景下,裸金属服务器 +ZBS NVMe-oF 协议接入的性能与裸金属服务器 + 本地 NVMe SSD 持平甚至略高。
  • 多个测试模型中,裸金属服务器 +ZBS NVMe-oF 协议接入 tpmC 值最低也可以达到裸金属服务器 + 本地 NVMe SSD 性能的 73%,最高值能达到裸金属服务器 + 本地 NVMe SSD 性能的 110%。

本次测试为双方用户展示了 openGauss 数据库在 SmartX 平台上的真实表现,为用户提供了更多选择和参考。欲了解更多 SmartX 超融合在不同数据库场景下的性能表现,请阅读:性能接近翻倍!利用 Boost 技术优化 SmartX 超融合信创平台承载达梦数据库性能详解。

下载《SmartX 超融合技术原理与特性解析合集(含 VMware 对比)》,进一步了解 SmartX 如何通过技术创新提升基础架构性能与可靠性。

超融合技术原理与特性解析合集(一)虚拟化与存储

超融合技术原理与特性解析合集(二)管理与运维

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

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

相关文章

JVM(垃圾回收机制 ---- GC)

啥是垃圾? 不再使用的内存 啥是垃圾回收机制? 自动释放不用的内存 注意: GC 主要是针对 堆 进行的 GC的基本操作单位是 对象, 即GC’回收的是整个对象都不使用的情况 GC 的优缺点 好处: 省心, 写代码简单, 不易出错 缺点: 需要消耗额外资源, 有额外性能开销 , 此外, 易触发 S…

vue 内容渲染和属性绑定

内容渲染指令 1. 使用v-text指令&#xff0c;将数据采用纯文本方式填充其空元素中 <script setup>import { reactive } from vuelet student reactive({name: Jack,desc: <h3>我是来自中国的小朋友&#xff01;</h3>}) </script> <template><…

介绍下RabbitMQ的事务机制

想要保证发送者一定能把消息发送给RabbitMQ&#xff0c;一种是通过confirm机制&#xff0c;另外一种就是通过事务机制。 RabbitMQ的事务机制&#xff0c;允许生产者将一组操作打包一个原子事务单元&#xff0c;那么全部执行成功&#xff0c;要么全部失败。事务提供了一种确保消…

【开源】JAVA+Vue.js实现食品生产管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 加工厂管理模块2.2 客户管理模块2.3 食品管理模块2.4 生产销售订单管理模块2.5 系统管理模块2.6 其他管理模块 三、系统展示四、核心代码4.1 查询食品4.2 查询加工厂4.3 新增生产订单4.4 新增销售订单4.5 查询客户 五、…

操作系统:初识操作系统

目录 1.冯诺依曼体系结构 2.操作系统 2.1什么是操作系统 2.2为什么需要操作系统 2.3怎么实现操作系统 1.冯诺依曼体系结构 对于上图&#xff1a; 输入设备完成的是写入工作&#xff0c;输出设备完成输出工作&#xff0c;这两部分包含磁盘这类的外存。 存储器一般指的是内存…

【C#杂谈】在 .NET Framework 中使用新的C#语言特性

前排提示&#xff1a;提出一个可以让 [^1] 这中语法可以在.NET Framework运行时中使用的方法 众所都周知&#xff0c;.NET Framework&#xff08;以下简称 .NF&#xff09;作为一个被微软官方确认不在继续发布新特性的运行时&#xff0c;它所对应的C#语言版本被&#xff08;官方…

TruEra

文章目录 关于 TruEra关于 TruLens 关于 TruEra TruEra Gen AI Observability and LLM Evaluation​ Monitor, evaluate, and debug your LLM and Gen AI apps. All part of Full Lifecycle AI Observability from TruEra. 官网&#xff1a;https://truera.comgithub : https…

时间序列分析技巧(一):根据ACF、PACF进行AR、MA、ARMA模型选择

程序员如何选择职业赛道&#xff1f; &#x1f349;CSDN小墨&晓末:https://blog.csdn.net/jd1813346972 个人介绍: 研一&#xff5c;统计学&#xff5c;干货分享          擅长Python、Matlab、R等主流编程软件          累计十余项国家级比赛奖项&#…

定时执行专家 - 自动截屏任务的设置步骤

以下是使用定时执行专家进行自动截屏的设置步骤&#xff1a; 下载并安装定时执行专家 从以下 官方博客 下载最新版本的定时执行专家&#xff0c;并按照提示进行安装。 BoomWorks软件的最新版-CSDN博客文章浏览阅读10w次&#xff0c;点赞9次&#xff0c;收藏42次。▉定时执行…

C语言数据结构与算法——深度、广度优先搜索(DFS、BFS)

目录 一、深度优先搜索&#xff08;Depth-First-Search 简称&#xff1a;DFS&#xff09; 无向图的深度优先搜索 有向图的深度优先搜索 二、广度优先搜索&#xff08;Breadth-First-Search 简称&#xff1a;BFS&#xff09; 无向图的广度优先搜索 有向图的广度优先搜索 深…

市场复盘总结 20240305

仅用于记录当天的市场情况&#xff0c;用于统计交易策略的适用情况&#xff0c;以便程序回测 短线核心&#xff1a;不参与任何级别的调整&#xff0c;采用龙空龙模式 一支股票 10%的时候可以操作&#xff0c; 90%的时间适合空仓等待 二进三&#xff1a; 进级率中 25% 最常用的…

CSS字体样式值,html注释标签

突破困境&#xff1a; 1. 提升学历 前端找工作&#xff0c;学历重要吗&#xff1f; 重要。谁要是告诉你不重要那一定是在骗你。现实情况是大专吃紧&#xff0c;本科够用&#xff0c;硕士占优&#xff0c;大专以下找到工作靠运气和真实力。 学历是硬伤&#xff0c;已经毕业的你…

(黑马出品_02)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

&#xff08;黑马出品_02&#xff09;SpringCloudRabbitMQDockerRedis搜索分布式 微服务技术栈治理 今日目标1.Nacos配置管理1.1.统一配置管理1.1.1.在nacos中添加配置文件1.1.2.从微服务拉取配置 1.2.配置热更新1.2.1.方式一1.2.2.方式二 1.3.配…

【Java设计模式】六、代理模式:静态代理、JDK + CGLIB动态代理

文章目录 1、代理对象2、代理模式结构3、静态代理4、JDK动态代理5、JDK动态代理的原理6、CGLIB动态代理7、三种代理的对比8、代理模式的总结 结构型设计是将类或者对象按某种布局&#xff08;继承机制、组合聚合&#xff09;来组成更大结构。包括七种&#xff1a; * 代理模式 …

代码随想录第51天|● 309.最佳买卖股票时机含冷冻期 ● 714.买卖股票的最佳时机含手续费 ●总结

文章目录 ● 309.最佳买卖股票时机含冷冻期思路代码 ● 714.买卖股票的最佳时机含手续费思路&#xff1a; ●总结 ● 309.最佳买卖股票时机含冷冻期 思路 代码 class Solution {public int maxProfit(int[] prices) {// 0.买入状态-(持有)// 1.保持卖出股票的状态// 2.今天…

JVM运行时数据区——堆

文章目录 1、堆的核心概述1.1、JVM实例与堆内存的对应关系1.2、堆与栈的关系1.3、JVM堆空间划分 2、设置堆内存大小与内存溢出2.1、设置堆内存大小2.2、内存溢出案例 3、新生代与老年代4、图解对象分配过程5、Minor GC、Major GC、Full GC5.1、GC的分类5.2、分代式GC策略的触发…

Sora:AI视频模型的无限可能与挑战

随着人工智能技术的突飞猛进&#xff0c;AI视频模型已成为科技领域的新焦点。OpenAI推出的AI视频模型Sora&#xff0c;凭借其卓越的技术性能和前瞻性&#xff0c;为AI视频领域的发展揭开了新的篇章。本文将从技术解析、应用场景、未来展望、伦理与创意以及用户体验与互动五个方…

【python基础学习09课_装饰器、模块、文件】

一、项目的日志 1、日志意义与级别 1、日志的意义&#xff1a;项目的日志 -- 开发编写的&#xff0c;日志记录 -- 测试就是去查看日志信息&#xff08;为了协助我们进行问题的定位&#xff09; 可以根据日志&#xff0c;看是哪个应用的哪台机器&#xff0c;出现了什么问题&…

Scala 之舞:林浩然与杨凌芸的 IDEA 冒险

Scala 之舞&#xff1a;林浩然与杨凌芸的 IDEA 冒险 The Dance of Scala: The IDEA Adventure of Lin Haoran and Yang Lingyun 在那个阳光明媚的日子里&#xff0c;林浩然如同一位英勇的探险家&#xff0c;踏入了 Scala 的 IntelliJ IDEA 开发环境的奇妙领域&#xff0c;他带着…

day7 字符数组

1&#xff1a;输入一个字符串&#xff0c;实现单词逆置 输入:"good good study" 输出&#xff1a;"study good good" 6 //单词逆置7 // good good study8 // study good good9 10 //整体逆置11 char str[50]"good good stu…