openGauss NUMA适配之线程绑核

本文介绍了openGauss数据库在NUMA架构下的线程绑核优化,包括多核NUMA结构、绑核优化思路和源码解析。通过配置thread_pool_attr参数,控制线程池中线程的绑核策略,以提高CPU利用率和系统性能。
摘要由CSDN通过智能技术生成

1、多核NUMA结构

NUMA(Non-uniform memory access,非统一内存访问架构)出现前,CPU通过内存控制器访问内存,随着CPU核的增加,内存控制器成为评价。内存控制器一般拆分内存平均分配到各个node节点上,CPU访问本地内存速度快,跨片访问慢。NUMA距离定义为:NUMA node的处理器和内存块的物理距离。通过numactl工具可以查看到CPU访问的距离信息。

2、NUMA绑核优化思路

避免线程在运行中在不同核上漂移,从而引起访问NUMA远端内存。openGauss通过配置参数thread_pool_attr控制CPU绑核分配,该参数仅在enable_thread_pool打开后生效。参数分为3部分:’thread_num,group_num,cpubind_info’。

其中thread_num:线程池中线程总数,取值0-4096。0表示根据CPU核数量自动配置线程池中线程数。如果大于0,线程池中线程数等于该值

group_num:线程池中线程分组个数。0-64。0表示根据NUMA组个数自动配置线程池中分组个数,否正为group_num个数。

cpubind_info:线程池是否绑核的配置参数。可以配置:

1(nobind),线程不绑核

2(allbind),利用当前系统所有能查询到的CPU核做线程绑核;

3 &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值