返回首页

gbase数据、南大通用产品文档:GBase8a

更新日期:2024年09月11日

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 多实例部署最佳实践

本示例中,使用水平制表符(Tab)作为字段包围符,其中水平制表符用转义字符"\t"
的方式指定,导出方法如下所示:
$ ./orato8a --user='ssbm/ssbm@maya' --table_name='message' --file='./message.tbl' --format=3
--field='|@|' --string_qualifier="\t"
export columns: 3
export rows: 10
export time: 0 sec
process ok!
$ cat message.tbl
1
|@|
Tom
|@|
I am Tom
2
|@|
小明
|@|
HHHH"KKKK
3
|@|
Peter
|@|
Hello!Hello!
4
|@|
Yama
|@|
send mail
5
|@|
Hellen
|@|
6
|@||@|
7
|@|
Seven
|@|
a book store

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
547
8
|@|
MMEE
|@|
yes
9
|@|
George
|@|
Thank you.
10
|@|
Lastman |@|
no message

此外,还存在一些HLL 旧函数。可用类似的函数进行替代。

hll_schema_version(hll)
描述:查看当前hll 中的schema version。旧版本schema version 是常值1,用来进行hll
字段的头部校验,
重构后的hll 在头部增加字段
“HLL”
进行校验,
schema version 不再使用。

hll_regwidth(hll)
描述:查看hll 数据结构中桶的位数大小。旧版本桶的位数regwidth 取值1~5,会存在
较大的误差,也限制了基数估计上限。重构后regwidth 为固定值6,不再使用regwidth 变
量。

hll_expthresh(hll)
描述:得到当前hll 中expthresh 大小。采用hll_log2explicit(hll)替代类似功能。

hll_sparseon(hll)

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
310
描述:是否启用Sparse 模式。采用hll_log2sparse(hll)替代类似功能,0 表示关闭Sparse
模式。