Page 455 - 《软件学报》2025年第12期
P. 455

5836                                                      软件学报  2025  年第  36  卷第  12  期


                 和性能收益.

                  4   NUMA-conscious 连接性能评估

                    我们在实验部分测试了不同          NUMA-conscious 连接算法性能. 首先测试无       NUMA  优化和使用--basic-numa 优
                 化选项的   NPO  算法、PRO   算法和向量连接算法性能作为           NUMA-oblivious 和  NUMA-conscious 连接算法基准性
                 能, 对比不同架构     CPU  平台上连接算法对      NUMA  优化的性能收益和       NUMA  硬件敏感性. 通过     NUMA-conscious
                 连接算法性能测试揭示不同连接算法实现技术在不同                   CPU  架构下的性能特征, 为数据库面向不同           CPU  架构的连
                 接算法优化选择提供依据.
                  4.1   硬件配置
                    实验使用了     5  台双路服务器, CPU   配置为具有代表性的        ARM、Intel 和  AMD  架构的  5  个处理器  (如表  1  所
                 示). 实验结果不仅能够展现        3  种不同架构   CPU  之间的性能特征与差异, 也能够展现相同架构不同代                CPU  之间的
                 性能变化, 展现    CPU  硬件技术发展对连接性能带来的影响. 配置             Intel 和  AMD  处理器的服务器运行    CentOS Linux
                 (内核版本为    4.18.0) 操作系统, ARM  处理器系统运行     Ubuntu Linux (内核版本为  4.19.9), gcc 版本为  7.3.1. 内存超
                 过  512 GB, 支持大数据内存连接测试负载. 测试时首先对连接负载进行预加载, 选择                     5  次连续连接执行时间中去
                 掉预热执行时间后最短时间作为代表性的内存连接运行时间, 消除数据加载等系统开销对连接算法性能的影响
                 (连续执行时间相对稳定, 取最短时间最小化系统其他负载干扰).
                  4.2   基准连接性能
                    图  5  显示了  NPO  算法、PRO  算法和向量连接算法的基准性能. 虚线表示无              NUMA  优化的连接算法性能, 实
                 线表示使用--basic-numa 选项的    NUMA  优化连接算法性能, 面积图表示          NUMA  优化连接算法相对无        NUMA  优
                 化连接算法性能提升百分比. 通过性能测试观察到如下规律.
                    • NPO  连接算法性能对     NUMA  架构敏感度较高, NUMA       优化收益较其他两个连接算法更高. 当            R  表记录少
                    20
                 于  2 行时, 连接性能主要受      cache 的影响, NUMA  优化对性能的影响较小. 当        R  表较大时产生大量内存哈希表访
                 问, NUMA  延迟对连接的性能影响幅度逐渐增长. CXL(28) 平台上              NUMA  优化与无    NUMA  优化性能差异最小,
                 ICX(38)、Milan Zen3  平台上性能差异相似, Rome Zen2   较  Milan Zen3  有更大的性能差异, ARM(64) 的性能差异
                 最大. 不同  CPU  平台  NUMA  优化性能差异反映了表        2  跨  NUMA  访问延迟的规律, 说明    CPU  跨  NUMA  访问延迟
                 性能对数据库连接算法性能具有直接的影响.
                    • NUMA  优化与无优化     PRO  算法之间的差异相对       NPO  算法较小, NUMA   优化和无    NUMA  优化算法性能曲
                 线相对平滑且差异较为稳定. PRO         算法使用基于私有       cache 的分区连接优化技术, 无法使用         L3 cache 的优化资源
                 消减小表连接时的       NUMA  延迟. 从性能曲线来看, AMD      的  Milan Zen3  和  Rome Zen2  的性能曲线较  Intel CLX(28)
                 和  ICX(38) 更加接近, 性能差异较小.
                    • 向量连接算法在      NUMA  优化和无    NUMA  优化模式下的性能差异最小, 算法性能对             NUMA  架构敏感度最
                 低, 呈现出  NUMA-oblivious 性能特征. x86  的  4  个  CPU  平台上向量连接  NUMA  优化与无优化算法性能差异较小,
                 ARM  平台两种算法性能差异相对较大, 反映了             ARM  平台跨  NUMA  访问延迟较大, 对向量连接算法性能产生影
                 响. 相对于   NPO  算法, 向量连接算法使用更小的向量代替哈希表, 向量探测较哈希探测有更低的延迟和                              CPU
                 cycle 消耗. 在性能曲线上与     NPO  算法相似, 但相对     NPO  算法有更高的    L3 cache 利用效率, 即使在向量超过       L3
                 cache 大小时仍有较低的访问延迟, cache 效率对向量连接算法性能的影响超过                   NUMA  访问延迟.

                    综上所述, NUMA     延迟性能主要影响内存访问阶段, 在            PRO  算法中分区阶段涉及跨        NUMA  读写访问延迟,
                 可以通过   NUMA   节点内分区缓存批量写操作, 来进一步降低              NUMA  访问延迟. 在探测阶段则通过         in-cache 探测
                 消除  NUMA  访问延迟. NPO   算法和向量连接算法是         hardware-oblivious 算法, 即采用共享哈希表/向量的硬件自适
                 应连接算法, 但在     NUMA  优化性能上有较大的差异. NPO         算法是   NUMA  性能高敏感型连接算法, 而向量连接算
   450   451   452   453   454   455   456   457   458   459   460