首页 > 其他分享 >openGauss NUMA-aware分配和亲和性

openGauss NUMA-aware分配和亲和性

时间:2024-04-29 14:11:06浏览次数:14  
标签:分配 aware 访问 内存 openGauss MOT 节点 NUMA

NUMA-aware分配和亲和性

非统一内存访问(NUMA)是一种计算机内存设计,用于多重处理,其中内存访问时间取决于内存相对于处理器的位置。处理器可以利用NUMA的优势,优先访问本地内存(速度更快),而不是访问非本地内存(这意味着它不会访问另一个处理器的本地内存或处理器之间共享的内存)。

MOT内存访问设计时采用了NUMA感知。即MOT意识到内存不是统一的,而是通过访问最快和最本地的内存来获得最佳性能。

NUMA的优点仅限于某些类型的工作负载,特别是数据通常与某些任务或用户强相关的服务器上的工作负载。

在NUMA平台上运行的内储存数据库系统面临一些问题,例如访问远程主内存时,时延增加和带宽降低。为了应对这些NUMA相关问题,NUMA感知必须被看作是数据库系统基本架构的主要设计原则。

为了便于快速操作和高效利用NUMA节点,MOT为每个表的行分配一个指定的内存池,同时为索引的节点分配一个指定的内存池。每个内存池由多个2MB的块组成。指定API从本地NUMA节点、来自所有节点的页面或通过轮询分配这些块,每个块在下一个节点上分配。默认情况下,共享数据池以轮询方式分配,以保持访问均衡,同时避免在不同NUMA节点之间拆分行。但是,线程专用内存是从一个本地节点分配的,必须验证线程始终运行在同一个NUMA节点中。

总结

MOT有一个智能内存控制模块,它预先为各种类型的内存对象分配了内存池。这种智能内存控制可以提高性能,减少锁并保证稳定性。事务的内存对象分配始终是NUMA-local,从而保证了CPU内存访问的最佳性能,降低时延和争用。被释放的对象返回到内存池中。在事务期间最小化使用操作系统的malloc函数可以避免不必要的锁。

详情查看:https://opengauss.org

详情查看:https://docs-opengauss.osinfra.cn

标签:分配,aware,访问,内存,openGauss,MOT,节点,NUMA
From: https://www.cnblogs.com/renxyz/p/18165557

相关文章

  • openGauss 创建和管理分区表
    创建和管理分区表背景信息openGauss数据库支持的分区表为范围分区表、间隔分区表、列表分区表、哈希分区表。范围分区表:将数据基于范围映射到每一个分区,这个范围是由创建分区表时指定的分区键决定的。这种分区方式是最为常用的,并且分区键经常采用日期,例如将销售数据按照月份进......
  • openGauss MOT本地内存和全局内存
    MOT本地内存和全局内存SILO管理本地内存和全局内存,如所示。全局内存是所有核共享的长期内存,主要用于存储所有的表数据和索引。本地内存是短期内存,主要由会话使用,用于处理事务及将数据更改存储到事务内存中,直到提交阶段。当事务需要更改时,SILO将该事务的所有数据从全局内存复......
  • openGauss MOT并发控制机制
    MOT并发控制机制通过大量研究,我们找到了最佳的并发控制机制,结论为:基于SILO[的OCC算法是MOT中最符合ACID特性的OCC算法。SILO为满足MOT的挑战性需求提供了最好的基础。说明:MOT完全符合原子性、一致性、隔离性、持久性(ACID)特性,如MOT简介所述。下面介绍MOT的并发控制机制。......
  • openGauss MOT查询原生编译_JIT
    MOT查询原生编译(JIT)MOT使您可以在执行之前以原生格式(使用PREPARE语句)准备并分析预编译的完整查询。这种本机格式以后可以更有效地执行(使用EXECUTE命令)。这种类型的执行效率要高得多,因为在执行期间,本机格式绕过了多个数据库处理层。这种分工避免了重复的解析分析操作。LiteExecu......
  • openGauss MOT持久性
    MOT持久性持久性是指长期的数据保护(也称为磁盘持久化)。持久性意味着存储的数据不会遭受任何形式的退化或损坏,因此数据不会丢失或损坏。持久性可确保在有计划停机(例如维护)或计划外崩溃(例如电源故障)后数据和MOT引擎恢复到一致状态。内存存储是易失的,需要电力来维护所存储的信息。......
  • openGauss MOT持久性概念
    MOT持久性概念持久性是指长期的数据保护(也称为磁盘持久性)。持久性意味着存储的数据不会遭受任何形式的退化或破坏,因此数据不会丢失或损坏。持久性可确保在有计划停机(例如维护)或计划外崩溃(例如电源故障)后数据和MOT引擎恢复到一致状态。内存存储是易失的,需要电源来维护所存储的信......
  • openGauss MOT部署
    MOT部署以下各小节介绍了各种必需和可选的设置,以达到最佳部署效果。MOT服务器优化:x86MOT服务器优化:基于Arm的华为TaiShan2P/4P服务器MOT配置......
  • openGauss MOT测试总结
    MOT测试总结MOT比磁盘表性能提升2.5至4.1倍,在Arm/鲲鹏256核服务器上达到480万tpmC。测试结果清楚表明MOT在扩展和利用所有硬件资源方面的卓越能力。随着CPU槽位和服务器核数增加,性能会随之跃升。MOT在Arm/鲲鹏架构下最高可达3万tpmC/核,在x86架构下最高可达4万tpmC/核。由于持久......
  • openGauss 时间-日期函数和操作符
    时间/日期函数和操作符时间日期操作符警告:用户在使用时间和日期操作符时,对应的操作数请使用明确的类型前缀修饰,以确保数据库在解析操作数的时候能够与用户预期一致,不会产生用户非预期的结果。比如下面示例没有明确数据类型就会出现异常错误。SELECTdate'2001-10-01'-'7......
  • openGauss 事件触发器
    事件触发器触发器会在指定的ddl事件发生时自动执行函数。目前事件触发器仅在PG兼容模式下可用。语法格式创建事件触发器。CREATEEVENTTRIGGERnameONevent[WHENfilter_variableIN(filter_value[,...])[AND...]]EXECUTEPROCEDUREfunction_na......