导语
NUMA架构优化技术是针对程序在NUMA架构CPU上运行出现资源消耗不均,程序执行效率低等问题进行优化的技术。这种优化技术在现在主流的NUMA架构多核服务器中,可以有效降低访问时延,提升高并发场景下的业务处理能力。
NUMA架构优化前:
延迟高,性能低
NUMA架构,在未优化的情况下,NUMA的内存分配策略对于进程或线程并不公平,这会导致以下问题:
Ø 高并发时进程或线程频繁进行跨Node调度,上下文切换代价高,效率低
Ø 某个Node的资源耗尽,而其他Node的内存资源却很空闲
Ø Node之间调用资源的开销较大,跨Node之间访问资源延迟高
Ø Node之间的总线带宽有限,大量的跨Node访问会造成总线阻塞,严重影响性能
NUMA架构访问时延图
NUMA架构优化后:
延迟低,性能高
为了解决NUMA架构引起的资源消耗不均及跨Node之间访问资源延迟大的问题,面向NUMA架构进行优化,其基本原理是:
Ø 设置执行线程与Node/核心的亲和度,将线程绑定在指定CPU核心运行,避免跨Node调度,降低CPU上下文切换代价
Ø 工作线程均匀分布在所有的Node节点中执行,线程通过Node分配本地内存,避免某个Node节点内存耗尽而其他Node节点内存很空闲的情况,从而充分使用CPU、内存等资源,进而提升数据库处理效率
Ø 工作线程均匀分布在所有的Node节点中执行,并限制每个node的线程个数,可以减少CPU资源争用,降低线程调度次数,减少处理器做线程上下文切换无用功的次数
Ø 线程与核心绑定,并尽可能使用所在Node的内存,从而获得最低的时延、最小的内部互联开销,进而提升数据库处理能力
NUMA架构优化前后对比
硬件配置:
CPU:kunpeng 920 64核 x 2
内存:32GB x 24
硬盘:3.2TB SSD x 4
网卡:25GE光纤网卡
服务器NUMA架构信息
性能测试数据
通过测试结果,可以看到:
Ø 优化前随着客户端并发数增加,线程调度频繁带来的sys占用CPU迅速增加,user可用的CPU资源降低,性能不断下降。
Ø 优化后客户端并发数增加了,线程调度的sys占用CPU比较稳定,数据库系统的user使用CPU可以保持在较高水平,数据库保持高性能运行。
【海量智库】
海量数据最新成立的技术专栏
我们会定期为大家输送技术干货文章
欢迎更多技术人员
与我们探讨交流
稿件请投递:marketing@vastdata.com.cn
关于海量数据
北京海量数据技术股份有限公司,成立于2007年,是国内首家主板上市的数据库技术领航企业。十几年来,秉承“专注做好数据库”的初心,致力于数据库领域的自主研发、销售和服务。其发布的核心产品Vastbase,是一款广泛应用于各行业的纯国产商业数据库,拥有完全自主知识产权,成为国产数据库软件的首选之一。
往期精彩
海量智库第1期|Vastbase G100核心技术介绍之【增量检查点】
海量智库第2期|Vastbase G100核心技术介绍之【AI原生】
海量智库第3期|Vastbase G100核心技术介绍之【CSN事务快照】