GBase 8a集群常见内存配置参数

配置在gnode的配置文件中,管理节点一般不用修改。

gbase_memory_pct_target 最大允许的内存占用比例,默认0.8等于80%。 内存总量=物理内存+SWAP内存。如超过,SQL会返回malloc分配内存失败错误。

gbase_heap_large 如果有大量的聚合group,join等操作,建议提高,包括内部的几个针对特定操作的参数:

如下几个黑体的算子BUFFER是可以set global的

gbase_buffer_hgrby:用于设置数据库做GROUP时使用的BUFFER大小;

gbase_buffer_distgrby:用于设置数据库做DISTINCT GROUP时使用的BUFFER大小;

gbase_buffer_hj:用于设置数据库做HASH JOIN时使用的BUFFER大小;

gbase_buffer_sj:用于设置数据库做SORT MERGE JOIN时使用的BUFFER大小;

gbase_buffer_sort :用于设置数据库做SORT时使用的BUFFER大小

gbase_buffer_rowset :用于配置缓存join中间结果所使用的BUFFRER大小

gbase_buffer_result :用于配置物化结果集BUFFER大小;

gbase> set global gbase_buffer_hgrby=12345;
Query OK, 0 rows affected (Elapsed: 00:00:00.00)

gbase> set global gbase_buffer_distgrby=12345;
Query OK, 0 rows affected (Elapsed: 00:00:00.00)

gbase> set global gbase_buffer_hj=12345;
Query OK, 0 rows affected (Elapsed: 00:00:00.01)

gbase> set global gbase_buffer_sort=123456;
Query OK, 0 rows affected (Elapsed: 00:00:00.01)

gbase> set global gbase_buffer_rowset=123456;
Query OK, 0 rows affected (Elapsed: 00:00:00.01)

gbase> set global gbase_buffer_result=123456;
Query OK, 0 rows affected (Elapsed: 00:00:00.00)

gbase> set global gbase_buffer_insert=123456;
ERROR 1238 (HY000): Variable 'gbase_buffer_insert' is a read only variable

gbase_buffer_insert:用于设置批量INSERT数据时,中间BUFFER的大小;

_gbase_express_table_metadata_limit 元数据缓冲参数

gbase_heap_data, 热数据缓冲

gbase_heap_temp 临时的缓冲,比如元数据,堆栈等。

_gbase_memory_turn_to_heap 不再从操作系统mallco内存,而是从heap上分配,避免内存使用超限导致被OOM。