GBase 8a 实例绑定numa 节点
对于只部署了多个data 节点
(gbase 实例)
的服务器,
建议将服务器的CPU、
内存以NUMA 节点的形式,
按照data 节点个数均匀的分配给不同的实例。
对于既
部署了data 节点(gbase 实例),同时又部署了gcluster、gcware 节点的服务
南大通用数据技术股份有限公司
12/44
器,建议将gcluster 和gcware 节点部署在一个NUMA 节点上。
GBase 8a 实例与NUMA 节点的绑定关系,是通过调整gcluster_services 脚
本配置绑定的。
安装多实例后,由于集群服务启动命令gcluster_services 是指向任意实例
(包括gnode 实例和gcluster 实例)下的gcluster_services 脚本,所以可以指
定某个实例的gcluster_services 文件进行添加绑定命令,如修改
IP/gnode/server/bin 下的gcluster_services 文件进行添加绑定。
后续启动数据库服务有两种方法:
方法一:每次启动数据库服务都使用该修改过的gcluster_services 文件
cd IP/gnode/server/bin
./gcluster_services all start
方法二:将该修改过的gcluster_services 文件拷贝替换所有实例下的
gcluster_services 文件(包含IP/gnode/server/bin/gcluster_services、
IP/gcluster/server/bin/gcluster_services)
,
后续每次启动数据库服务命令
不变,仍使用集群常规的启动命令:
gcluster_services all start
样例:服务器8numa,4 实例,绑定关系为1 实例绑定2numa
样例为通用绑定样例,只是给各实例均分了numa node。如果在均分的基础
上需要明确指定实例绑定的numa node,可以参考3.6 章节国产服务器配置优化
中的实例绑定numa 节点。
任意选定一个实例的gnode/server/bin 下gcluster_services 文件,修改
两处:
第一处原文如下(约410 行处):
修改为:
南大通用数据技术股份有限公司
13/44
注解:
numactl --membind=nodes program(nodes 写要分配的节点0 或1 或者其它
节点数,后面是程序,可以写绝对路径,也可写服务启动脚本)
numactl --cpunodebind=nodes program(nodes 为cpu 节点,后面跟程序)
第一处改动的内容不是固定公式,需要根据服务器的实际numa node 数量和
部署的实例数量进行按需调整,参考实例上的文字说明进行调整。
第二处原文如下(约500 行处):
gcluster_services all start 的执行代码
南大通用数据技术股份有限公司
14/44
修改为:
南大通用数据技术股份有限公司
15/44
第三处原文如下(约450 行处):
gcluster_services gbase|syncserver start 的执行代码
南大通用数据技术股份有限公司
16/44
修改为:
南大通用数据技术股份有限公司
17/44
第二处和第三处的修改是固定修改,不需改动,直接按示例修改即可。
更改完上述文件后,需要重新启动集群服务:
cd IP/gnode/server/bin
./gcluster_services all start
可以使用下面语句检查numa 绑定效果:
numastat `pidof gbased`
查看语句示例如下,
示例为2 实例2numa,
每个实例绑定1numa 的查看效果:
[root@pst_w61 config]$ numastat `pidof gbased`
南大通用数据技术股份有限公司
18/44
3 多实例部署最佳实践