数据库管理-第113期 Oracle Exadata 04-硬件选择(20231020)

2023-10-29 20:12

本文主要是介绍数据库管理-第113期 Oracle Exadata 04-硬件选择(20231020),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

数据库管理-第113期 Oracle Exadata 04-硬件选择(2023010290)

本周没写文章,主要是因为到上海参加了Oracle CAB/PAB会议,这个放在后面再讲,本期讲一讲Exadata,尤其是存储节点的硬件选择及其对应的一些通用软件配套。

1 InfiniBand/RoCE

InfiniBand交换机是Exadata X8及之前一直使用的内部交换机,以X8为例,单路带宽为40Gb。相较于以太网交换机,InfiniBand的延迟具有交大的优势。
RoCE交换机则是X8M开始使用的内部交换机,目前X8M、X9M、X10M均为单路100Gb,为以太网交换机。相较于InfiniBand价格更加便宜,而且能提供更大的带宽。

2 RDMA

对应交换机硬件,Exadata在很早的版本就开始使用RDMA技术,即:

  • Remote(远程):数据在网络中的两个节点之间传输。
  • Direct(直接):不需要内核参与,传输的所有处理都卸载到NIC硬件中完成。
  • Memory(内存):数据直接在两个节点的应用程序的虚拟内存间传输;不需要额外的复制和缓存。
  • Access(访问):访问操作有send/receive、read/write等。
    在这里插入图片描述

毕竟Exadata使用的是存算分离架构,本身基础延迟会大于存算一体架构。使用RDMA还有以下一些好处,使得计算节点可以更加快速的从存储节点获取数据:

  • 内存零拷贝(Zero Copy):RDMA应用程序可以绕过内核网络栈直接进行数据传输,不需要再将数据从应用程序的用户态内存空间拷贝到内核网络栈内存空间。
  • 内核旁路(Kernel bypass):RDMA应用程序可以直接在用户态发起数据传输,不需要在内核态与用户态之间做上下文切换。
  • CPU减负(CPU offload):RDMA可以直接访问远程主机内存,不需要消耗远程主机中的任何CPU,这样远端主机的CPU可以专注自己的业务,避免其cache被干扰并充满大量被访问的内存内容。

3 PMEM/XRMEM

PMEM即非易失性内存(傲腾),XRMEM则是Exdata RDMA内存(DDR5)。其中PMEM使用于X8M和X9M,因Intel停止生产傲腾,因此X10M开始使用XRMEM。二者本质上是在Flash Card(即NVMe SSD)上再添加一层加速缓存,且二者均可直接接入RDMA,极大地降低了数据访问延迟。

4 Flash Card(NVMe SSD)

这里就不介绍啥是NVMe SSD了,毕竟现在新款的笔记本都是标配,最近的降价也是家用的常规产品了。Exadata也是很早就开始使用这一技术产品,使用PCIe接口极大的带宽在HDD(当然对于X10M之前的全闪存储是不存在的,X10M开始的全闪存储,有容量型Flash Card)之上加速缓存数据。在X9M之前标准存储节点使用的是4块PCIe 3.0 x4+x4的6.4TB(3.2TB+3.2TB) NVMe SSD,而X9M开始则是4块PCIe 4.0 x4+x4的6.4TB(3.2TB+3.2TB) NVMe SSD(Exadata单盘都是做了PCIe拆分的),正好我电脑上有PCIe 3.0和PCIe 4.0 x4的NVMe SSD,这里也做一个测试:
下面是一块PCIe 3.0普通SX8200的成绩:
在这里插入图片描述
下面是一块PCIe 4.0顶级旗舰980Pro的成绩:
在这里插入图片描述
首先从极限带宽来看,PCIe 4.0是PCIe 3.0的两倍,这里用家用级产品大概对比下X8M和X9M一个存储节点Flash Card 的极限带宽,X8M总计大概为3300MB/s×4×2=26400MB/s,X9M大概是2倍32800MB/s。试想一下如果使用传统FC-SAN的32Gb/s(≈4000MB/s),其实算上本身损耗,一块PCIe 3.0的Flash Card就会占满,即便是40Gb/s(≈5000MB/s)或100Gb/s(≈12500MB/s),光是X8M上的配置就已经可以远远超过一台存储节点的全部带宽,而Flash Card往上还有PMEM/XRMEM这两个的带宽可是接近内存的速度(可以参考数据库管理-第二十四期 数据库设计-硬件篇(20220610)中对内存的测试结果)。
这里再试想一下上百TB的全闪存储,以RAC集群为例,极端数据库读取的带宽肯定是远远大于传输层(FC/网络)带宽的,那么这种情况下瓶颈在传输,磁盘性能是无法充分利用的。

5 ESS起个头

为了解决存储节点磁盘能力远远大于网络能力的问题,Exadata使用Exadata Stroage Software(后面文章都将用ESS作为简称)来将存储节点转换为智能存储,即让存储参与数据库计算,仅将需要的数据通过网络传输至计算节点,配合RDMA,降低了延迟、网络IO、内存占用以及CPU损耗。可以说ESS才是Exadata最能打的部分,也是很多国产一体机纸面数据吊打Exadata但实际使用又干不过Exadata的主要原因。后面我将用若干期来讲ESS带来的一系列存储功能。

6 总结

老规矩,知道写了些啥。

这篇关于数据库管理-第113期 Oracle Exadata 04-硬件选择(20231020)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Mysql数据库中数据的操作CRUD详解

《Mysql数据库中数据的操作CRUD详解》:本文主要介绍Mysql数据库中数据的操作(CRUD),详细描述对Mysql数据库中数据的操作(CRUD),包括插入、修改、删除数据,还有查询数据,包括... 目录一、插入数据(insert)1.插入数据的语法2.注意事项二、修改数据(update)1.语法2.有

Oracle 通过 ROWID 批量更新表的方法

《Oracle通过ROWID批量更新表的方法》在Oracle数据库中,使用ROWID进行批量更新是一种高效的更新方法,因为它直接定位到物理行位置,避免了通过索引查找的开销,下面给大家介绍Orac... 目录oracle 通过 ROWID 批量更新表ROWID 基本概念性能优化建议性能UoTrFPH优化建议注

PostgreSQL 序列(Sequence) 与 Oracle 序列对比差异分析

《PostgreSQL序列(Sequence)与Oracle序列对比差异分析》PostgreSQL和Oracle都提供了序列(Sequence)功能,但在实现细节和使用方式上存在一些重要差异,... 目录PostgreSQL 序列(Sequence) 与 oracle 序列对比一 基本语法对比1.1 创建序

查看MySQL数据库版本的四种方法

《查看MySQL数据库版本的四种方法》查看MySQL数据库的版本信息可以通过多种方法实现,包括使用命令行工具、SQL查询语句和图形化管理工具等,以下是详细的步骤和示例代码,需要的朋友可以参考下... 目录方法一:使用命令行工具1. 使用 mysql 命令示例:方法二:使用 mysqladmin 命令示例:方

exfat和ntfs哪个好? U盘格式化选择NTFS与exFAT的详细区别对比

《exfat和ntfs哪个好?U盘格式化选择NTFS与exFAT的详细区别对比》exFAT和NTFS是两种常见的文件系统,它们各自具有独特的优势和适用场景,以下是关于exFAT和NTFS的详细对比... 无论你是刚入手了内置 SSD 还是便携式移动硬盘或 U 盘,都需要先将它格式化成电脑或设备能够识别的「文

Python+PyQt5开发一个Windows电脑启动项管理神器

《Python+PyQt5开发一个Windows电脑启动项管理神器》:本文主要介绍如何使用PyQt5开发一款颜值与功能并存的Windows启动项管理工具,不仅能查看/删除现有启动项,还能智能添加新... 目录开篇:为什么我们需要启动项管理工具功能全景图核心技术解析1. Windows注册表操作2. 启动文件

MySQL数据库约束深入详解

《MySQL数据库约束深入详解》:本文主要介绍MySQL数据库约束,在MySQL数据库中,约束是用来限制进入表中的数据类型的一种技术,通过使用约束,可以确保数据的准确性、完整性和可靠性,需要的朋友... 目录一、数据库约束的概念二、约束类型三、NOT NULL 非空约束四、DEFAULT 默认值约束五、UN

gradle第三方Jar包依赖统一管理方式

《gradle第三方Jar包依赖统一管理方式》:本文主要介绍gradle第三方Jar包依赖统一管理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录背景实现1.顶层模块build.gradle添加依赖管理插件2.顶层模块build.gradle添加所有管理依赖包

基于Python打造一个智能单词管理神器

《基于Python打造一个智能单词管理神器》这篇文章主要为大家详细介绍了如何使用Python打造一个智能单词管理神器,从查询到导出的一站式解决,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 项目概述:为什么需要这个工具2. 环境搭建与快速入门2.1 环境要求2.2 首次运行配置3. 核心功能使用指

HTML5中的Microdata与历史记录管理详解

《HTML5中的Microdata与历史记录管理详解》Microdata作为HTML5新增的一个特性,它允许开发者在HTML文档中添加更多的语义信息,以便于搜索引擎和浏览器更好地理解页面内容,本文将探... 目录html5中的Mijscrodata与历史记录管理背景简介html5中的Microdata使用M