ITPub博客

首页 > 数据库 > 国内数据库 > 南大通用GBase 8a数据库复杂应用内存需求评估参考 介绍

南大通用GBase 8a数据库复杂应用内存需求评估参考 介绍

原创 国内数据库 作者:GBASE南大通用 时间:2025-11-13 10:56:15 0 删除 编辑

南大通用GBase 8a数据库可从以下几个方面考量运算过程中单个 GBase 集群节点(gnode)各算子的内存需求(假定 10 节点集群):

  • 参与运算的数据量

以一个2 亿行的表与3 千万行的表进行 join 运算,并对 join 运算结果进行 groupby聚集,最终得到的结果行数为 1.5 亿行的场景为例。参与运算的数据量为 2.3 亿行,超过 100GB(不含不参与运算的字段),得到的结果集也超过 80GB:对于10节点集群,每节点承载的运算数据量超过 8GB,保守评估每节点运算数据量为10GB。

  • sql执行过程中的中间结果集大小

如两表 join 生成的 hash table 的尺寸大小; sql 执行过程中生成的临时表的大小;这些中间结果集的大小通常不会小于参与运算的原始数据量。延用上例场景,假设每个 gnode 的中间结果集大小也为 10GB。

  • sql 并发数

客户的业务通常都要求数据库支撑 5~100 个不等的并发。

  • 总结

综上,单个集群节点在上述场景下的内存需求为 10~20GB,在 10个类似 sql 场景并发,单个 gnode 的数据库运算内存需求为 100GB 以上,此外还应为 gnode 分配20GB 以上的内存用于数据缓存。按照数据库使用操作系统总物理内存 60~80%的比例,在上述场景下,建议单服务器的总物理内存为 120G/0.8=150G 以上。按照项目工程经验,复杂应用中多以 hashjoin、group by、order by 等数据库运算为主;在 gnode 服务器内存配置为 128G~200G,混合型(包含多种数据库运算)复杂应用中, GBase 集群的算子 buer 大小可如下设置(考虑并发场景,且并发数在10~20 之间):

gbase_buffer_distgrby=2Ggbase_buffer_hgrby=4Ggbase_buffer_hj=4Ggbase_buffer_sj=2Ggbase_buffer_sort=4Ggbase_buffer_result=2Ggbase_buffer_rowset=2G

并发场景情况下,还需考虑GBase集群的gbase parallel degreegbase parallel max thread in pool 参数配置。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69979120/viewspace-3101218/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
GBASE南大通用,致力于成为用户最信赖的数据库产品供应商!

注册时间:2020-07-16

  • 博文量
    1329
  • 访问量
    1318739