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

本文主要是介绍性能实测:分布式存储 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)的性能对比

这篇关于性能实测:分布式存储 ZBS 与集中式存储 HDS 在 Oracle 数据库场景表现如何的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/684305

相关文章

Java Spring 中 @PostConstruct 注解使用原理及常见场景

《JavaSpring中@PostConstruct注解使用原理及常见场景》在JavaSpring中,@PostConstruct注解是一个非常实用的功能,它允许开发者在Spring容器完全初... 目录一、@PostConstruct 注解概述二、@PostConstruct 注解的基本使用2.1 基本代

C#使用StackExchange.Redis实现分布式锁的两种方式介绍

《C#使用StackExchange.Redis实现分布式锁的两种方式介绍》分布式锁在集群的架构中发挥着重要的作用,:本文主要介绍C#使用StackExchange.Redis实现分布式锁的... 目录自定义分布式锁获取锁释放锁自动续期StackExchange.Redis分布式锁获取锁释放锁自动续期分布式

关于MongoDB图片URL存储异常问题以及解决

《关于MongoDB图片URL存储异常问题以及解决》:本文主要介绍关于MongoDB图片URL存储异常问题以及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录MongoDB图片URL存储异常问题项目场景问题描述原因分析解决方案预防措施js总结MongoDB图

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

数据库面试必备之MySQL中的乐观锁与悲观锁

《数据库面试必备之MySQL中的乐观锁与悲观锁》:本文主要介绍数据库面试必备之MySQL中乐观锁与悲观锁的相关资料,乐观锁适用于读多写少的场景,通过版本号检查避免冲突,而悲观锁适用于写多读少且对数... 目录一、引言二、乐观锁(一)原理(二)应用场景(三)示例代码三、悲观锁(一)原理(二)应用场景(三)示例

Node.js 数据库 CRUD 项目示例详解(完美解决方案)

《Node.js数据库CRUD项目示例详解(完美解决方案)》:本文主要介绍Node.js数据库CRUD项目示例详解(完美解决方案),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考... 目录项目结构1. 初始化项目2. 配置数据库连接 (config/db.js)3. 创建模型 (models/

SpringBoot应用中出现的Full GC问题的场景与解决

《SpringBoot应用中出现的FullGC问题的场景与解决》这篇文章主要为大家详细介绍了SpringBoot应用中出现的FullGC问题的场景与解决方法,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录Full GC的原理与触发条件原理触发条件对Spring Boot应用的影响示例代码优化建议结论F

深入理解Apache Kafka(分布式流处理平台)

《深入理解ApacheKafka(分布式流处理平台)》ApacheKafka作为现代分布式系统中的核心中间件,为构建高吞吐量、低延迟的数据管道提供了强大支持,本文将深入探讨Kafka的核心概念、架构... 目录引言一、Apache Kafka概述1.1 什么是Kafka?1.2 Kafka的核心概念二、Ka

SpringBoot条件注解核心作用与使用场景详解

《SpringBoot条件注解核心作用与使用场景详解》SpringBoot的条件注解为开发者提供了强大的动态配置能力,理解其原理和适用场景是构建灵活、可扩展应用的关键,本文将系统梳理所有常用的条件注... 目录引言一、条件注解的核心机制二、SpringBoot内置条件注解详解1、@ConditionalOn

Python 迭代器和生成器概念及场景分析

《Python迭代器和生成器概念及场景分析》yield是Python中实现惰性计算和协程的核心工具,结合send()、throw()、close()等方法,能够构建高效、灵活的数据流和控制流模型,这... 目录迭代器的介绍自定义迭代器省略的迭代器生产器的介绍yield的普通用法yield的高级用法yidle