作者:妩媚芙蓉糕 | 来源:互联网 | 2023-08-24 10:53
openGauss根据鲲鹏处理机的多核NUMA架构特点,进行针对性一系列NUMA架构相关优化,一方面尽量减少跨核内存访问的时延问题,另一方面充分发挥鲲鹏多核算力优势,所提供的关键技
鲲鹏NUMA 架构优化
⚫ openGauss根据鲲鹏处理机的多核NUMA架构特点,进行针对性一系列NUMA架构相关
优化,一方面尽量减少跨核内存访问的时延问题,另一方面充分发挥鲲鹏多核算力优势,
所提供的关键技术包括重做日志批插、热点数据NUMA分布、CLog分区等,大幅提升TP
系统的处理性能。
⚫ openGauss基于鲲鹏芯片所使用的ARMv8.1架构,利用LSE扩展指令集实现高效的原子操
作,有效提升CPU利用率,从而提升多线程间同步性能,XLog写入性能等。
⚫ openGauss基于鲲鹏芯片提供的更宽的L3缓存cacheline,针对热点数据访问进行优化,
有效提高缓存访问命中率,降低Cache缓存一致性维护开销,大幅提升系统整体的数据访
问性能。
鲲鹏NUMA CPU 结构
⚫ NUMA:Non Uniform Memory Access。
⚫ NUMA距离:NUMA node的处理器和内存块
的物理距离。通过numactl工具可以查询到
CPU访问的距离信息。
NUMA ARM 原子指令
⚫ CAS(Compare and Swap),原子操作,用于多线程操作下,确保数据写入的一致性。
⚫ 在多线程编程中实现不被打断的数据交换操作,避免同时改写某一数据时由于执行顺序不确定性及中断的不可预知性导致
数据不一致问题。
NUMA 内核数据结构
⚫ 线程绑核,避免线程在核间偏移。
⚫ NUMA化数据结构改造,减少跨核访
问。
⚫ 数据分区,减少线程访问冲突。
⚫ 算法调整,减少单点瓶颈。
⚫ 借助ARM原子指令,减少计算开销。