性能实测:分布式存储 ZBS 与集中式存储 HDS 在 Oracle 数据库场景表现如何

作者:深耕行业的 SmartX 金融团队 金鑫

在金融客户的基础架构环境中,HDS 是一种被广泛使用的存储解决方案。作为集中式存储的代表之一,HDS 拥有高性能、高可用性和可扩展性的企业级存储特点,适用于实时数据处理、虚拟化和灾难备份等场景。

在《分布式存储支持数据仓库业务系统性能验证》文章中,我们对比了 SmartX 分布式存储 ZBS 与全闪集中式存储(EMC PowerStore)执行数仓跑批任务的效率。为了帮助用户了解更多应用场景下 ZBS 与传统集中式存储的性能表现,我们对 ZBS 和 HDS(Hitachi Virtual Storage Platform E590)展开了性能评测,包括基准性能测试和支持 Oracle 数据库的性能测试。结果显示,ZBS(开启 RDMA)在大部分基准测试和 Oracle 场景中,性能和稳定性均优于 HDS 集中式存储。

测试环境

zbs-hds-performance-1.png

  • 准备三台计算节点,一台部署单机 Oracle,另外两台部署 Oracle RAC,采用 Oracle 19c 软件版本。
  • 集中存储测试对象 Hitachi Virtual Storage Platform E590
  • 利用三台 x86 服务器构建 ZBS 分布式存储

测试过程与结果

存储基准性能测试

基准性能测试利用 FIO 工具,分别测试两个环境在存储基准性能、读写延时控制 500us、长时间(12 小时)运行、快照等条件下的性能表现。其中,在存储基准性能测试用例中,分别测试单计算节点(1P1V 和 1P3V)和三计算节点(3P1V 和 3P3V)的性能表现,延时控制和长时间运行场景均基于 3P1V 进行测试,快照场景基于 1P1V 进行测试*。

* P 表示物理机,V 表示卷。1P1V 表示一个物理机挂载一个卷,1P3V 表示一个物理机挂载三个卷,3P1V 表示三个物理机各挂载一个卷,3P3V 表示三个物理机各挂载三个卷。

存储基准-单计算节点测试结果

zbs-hds-performance-2.png

zbs-hds-performance-3.png

zbs-hds-performance-4.png

由于 ZBS 在接入网络层面支持 iSCSI、NVMe over TCP 和 NVMe over RDMA(RoCE v2)三种协议,我们分别开启三种协议进行了测试。可以看到,除了 1P3V – 随机读场景下 HDS 的性能和延迟情况要优于 ZBS,其他场景下 ZBS 开启 RDMA 后的性能均优于 HDS,基于 TCP 和 iSCSI 协议的 ZBS 性能与 HDS 性能水平相当。

存储基准-三计算节点测试结果

zbs-hds-performance-5.png

zbs-hds-performance-6.png

zbs-hds-performance-7.png

在三计算节点配置下,ZBS 开启 RDMA 后性能均优于同一场景下的 HDS 存储。

读写延时控制 500us 测试结果

zbs-hds-performance-8.png

读写延时分别控制在 500us 时,ZBS 开启 RDMA 后性能远超 HDS (几乎翻倍)。

12 小时长时间测试结果

zbs-hds-performance-9.png

通过 12 小时长时间的性能压测(IODepth 2 *32),观察存储性能抖动,从测试结果中的性能曲线和抖动幅度,可以明显观察到,ZBS 性能表现均优于 HDS,表现出更好的性能稳定性。

卷快照后性能测试结果

zbs-hds-performance-10.png

在快照测试中,4k 小块随机写场景下 HDS 与 ZBS 都有一定幅度的性能下降,几分种后恢复到初始性能;256k 大块顺序写场景下,ZBS 性能稳定未受快照事件影响,而 HDS 性能波动较明显。

支持 Oracle 业务性能测试

除了基准性能测试,我们还针对两个环境下 Oracle 数据库性能展开了对比测试,包括单库读写测试、单库 TPCC 测试、RAC 读写测试和 RAC TPCC 测试。

写性能测试

测试场景:

  • 基于券商委托插入脚本模拟压力
  • 50 并发
  • 单并发 150w 数据写入
  • 每 1000 笔提交一次

测试结果:

单库:

zbs-hds-performance-11.png

度量单位:每秒插入数据行数

RAC:

zbs-hds-performance-12.png

度量单位:每秒插入数据行数

读性能测试

测试场景:

  • 使用 CALIBRATE_IO 测试存储过程
  • 1T Datafile
  • 100G Redofile

测试结果:

单库:

zbs-hds-performance-13.png

RAC:

zbs-hds-performance-14.png

TPCC 测试

测试场景:

  • 使用 Swingbench 进行测试
  • 200 并发

测试结果:

单库:

zbs-hds-performance-15.png

RAC:

zbs-hds-performance-16.png

RAC(存储混合负载):

zbs-hds-performance-17.png

总体而言,ZBS(开启 RDMA)环境下 Oracle 数据库性能表现均优于 HDS 集中式存储环境,尤其是在 TPCC 测试中,相比 HDS,ZBS 可提升数据库性能约 30%,充分满足业务性能需求。

总结

整体而言,在存储基准场景和 Oracle 数据库场景下,ZBS 开启 RDMA 的性能和稳定性表现要优于 HDS 集中式存储,ZBS 优化的快照机制也可降低快照创建对性能带来的影响。

欲深入了解 ZBS 架构设计与技术创新,请阅读电子书《分布式存储 ZBS 的自主研发之旅》。

阅读原文:分布式存储与集中式存储(HDS)的性能对比

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

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

相关文章

Python 潮流周刊#38:Django + Next.js 构建全栈项目

△△请给“Python猫”加星标 ,以免错过文章推送 你好,我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容,大部分为英文。本周刊开源,欢迎投稿[1]。另有电报频道[2]作为副刊,补充发布更加丰富的资讯,…

开源软件全景解析:驱动技术创新与行业革新的力量

目录 什么是开源 开源的核心 开源软件的特点 为什么程序员应该拥抱开源 1.学习机会: 2.社区支持: 3.提高职业竞争力: 4.加速开发过程: 5.贡献和回馈: 开源软件的影响力 开源软件多元分析: 开源…

蓝桥杯刷题day06——平均

1、题目描述 有一个长度为n 的数组(n 是 10 的倍数),每个数ai都是区间 [0,9] 中的整数。 小明发现数组里每种数出现的次数不太平均,而更改第i 个数的代价为bi, 他想更改若干个数的值使得这10 种数出现的次数相等&…

YOLOv8改进 | 检测头篇 | 重参数化检测头RepHead解决困难样本检测(全网独家首发)

一、本文介绍 本文给大家带来的改进机制是RepHead,该检测头为我独家全网首发,该检测头由重参数化模块组成,加大对于特征学习的能力,却可以不增加GFLOPs(仅仅略微提升)从而不影响模型的推理速度和性能,保持较高的FPS能力,牺牲了少量GFLOPs的情况下确提高了模型的特征提…

LeetCode--代码详解 292.Nim游戏

292.Nim游戏 题目 你和你的朋友,两个人一起玩 Nim 游戏: 桌子上有一堆石头。你们轮流进行自己的回合, 你作为先手 。每一回合,轮到的人拿掉 1 - 3 块石头。拿掉最后一块石头的人就是获胜者。 假设你们每一步都是最优解。请编写…

(2)(2.13) Rockblock Satellite Modem

文章目录 前言 1 支持的MAVLink命令信息 2 设置 3 使用方法 4 数据成本 5 参数 前言 !Note 该功能仅适用于 ArduPilot 4.4 或更高版本,并且要求飞行控制器支持 LUA 脚本(LUA Scripts)。 RockBLOCK 卫星调制解调器可实现与 ArduPilot 飞行器的全球…

SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式 基础(持续更新~)

具体操作: day2: 作用: 出现跨域问题 配相对应进行配置即可解决: IDEA连接的,在url最后加参数?useSSLfalse注意链接密码是123(docker中mysql密码) 注意,虚拟机中设置的密码和ip要和主机上…

专业排版设计软件:QuarkXPress 2024 for mac中文激活版

QuarkXPress 2024 for Mac是一款功能强大、易于使用、高质量输出的专业排版软件。无论您是出版业的专家还是初学者,都可以通过QuarkXPress 2024轻松创建出令人惊叹的出版物。 软件下载:QuarkXPress 2024 for mac中文激活版下载 QuarkXPress 2023 for Mac…

Unity3d Cinemachine篇(完)— TargetGroup

文章目录 前言使用TargetGroup追随多个模型1. 创建二个游戏物体2. 创建TargetGroup相机3. 设置相机4. 完成 前言 上一期我们简单的使用了ClearShot相机,这次我们来使用一下TargetGroup 使用TargetGroup追随多个模型 1. 创建二个游戏物体 2. 创建TargetGroup相机 3…

vue 下载二进制文件

文章目录 概要技术细节 概要 vue 下载后端返回的二进制文件流 技术细节 import axios from "axios"; const baseUrl process.env.VUE_APP_BASE_API; //downLoadPdf("/pdf/download?pdfName" res .pdf, res); export function downLoadPdf(str, fil…

react-virtualized实现行元素不等高的虚拟列表滚动

前言: 当一个页面中需要接受接口返回的全部数据进行页面渲染时间,如果数据量比较庞大,前端在渲染dom的过程中需要花费时间,造成页面经常出现卡顿现象。 需求:通过虚拟加载,优化页面渲染速度 优点&#xff1…

rust嵌入式开发之RTICvsEmbassy

RTIC和Embassy是目前rust嵌入式开发中比较热门的两个框架。本来呢,针对RTIC的移植已经完成了一小半,但在移植过程中感受到了RTIC的不足,正好跳出来全面考察下embassy,本文就是根据目前的尝试结果做个对比总结。 RTIC和Embassy是两…

Codeforces Round 651 (Div. 2)C. Number Game 博弈 奇偶数 偶数的表示

Submission #244500083 - Codeforces 题目: 思路: 此题要从奇偶性上入手。(注意除的是奇因数,即一个奇数。我想成质数了) 1.当A选手开局是1时,A败。 2.当A选手开局是2和奇数时,A必胜。&…

Golang context 万字解析实现原理

Golang:context基于go1.21版本 Context 是什么Context 的功能应用场景源码分析1.10 Context核心结构1.1Err错误2 .1 emptyCtx 3.1 Background() 和 TODO()4.1.1 cancelCtx4.1.2 Deadline 方法4.1.2 Done 方法4.1.2 Err 方法4.1.2 Value 方法 4.2 WithCancel() 和 Wi…

vue2 el-table新增行内删除行内(两种写法)里面第一个是树组件,第二个是数字组件,第一个数组件只能勾选最后一个节点

第一种 <template><div class"time_table"><div style"margin-bottom: 10px"><el-button click"addRowFn">新增</el-button></div><el-form ref"costForm" :model"formData">&l…

备战蓝桥杯---搜索(剪枝)

何为剪枝&#xff0c;就是减少搜索树的大小。 它有什么作用呢&#xff1f; 1.改变搜索顺序。 2.最优化剪枝。 3.可行性剪枝。 首先&#xff0c;单纯的广搜是无法实现的&#xff0c;因为它存在来回跳的情况来拖时间。 于是我们可以用DFS&#xff0c;那我们如何剪枝呢&#…

Http请求Cookie失效问题

Http请求Cookie失效问题记录 一、问题现象 在开发功能的过程中&#xff0c;业务依赖cookie进行取之&#xff0c;项目进行交互时会对前端http请求携带的cookies进行解析操作&#xff0c;但在自测调试对过程中出现账户的授权失效的报错问题。 二、问题排查 用arthas进行代码方…

React16源码: React中event事件监听绑定的源码实现

event事件监听 1 &#xff09;概述 在 react-dom 代码初始化的时候&#xff0c;去注入了平台相关的事件插件接下去在react的更新过程绑定了事件的操作&#xff0c;在执行到 completeWork 的时候对于 HostComponent 会一开始就先去执行了 finalizeInitialChildren 这个方法位置…

鸿蒙应用/元服务开发-窗口(Stage模型)设置悬浮窗

一、设置悬浮窗说明 悬浮窗可以在已有的任务基础上&#xff0c;创建一个始终在前台显示的窗口。即使创建悬浮窗的任务退至后台&#xff0c;悬浮窗仍然可以在前台显示。通常悬浮窗位于所有应用窗口之上&#xff1b;开发者可以创建悬浮窗&#xff0c;并对悬浮窗进行属性设置等操…

使用网关过滤器,根据业务规则实现微服务动态路由

文章目录 业务场景拦截器实现Spring Cloud Gateway介绍 业务场景 我们服务使用Spring Cloud微服务架构&#xff0c;使用Spring Cloud Gateway 作为网关&#xff0c;使用 Spring Cloud OpenFeign 作为服务间通信方式作为网关&#xff0c;主要作用是鉴权与路由转发。大多数应用场…