南大通用GBase 8a集群运行报错BLK_TEMP: return NULL in alloc

原因

内存不足引起,特别是多并发下。

根据报错信息具体的内存使用情况大致分为3类:

1、Heap Data堆高

一般是由于并发下,热数据无法快速淘汰导致

2、Large 堆高

一般是并发太高,且都是运算类,比如group, join, sort等。

3、temp堆高

一般是元数据,比如智能索引太高,导致。或者并发加载等临时分配内存太多等导致。

解决方案

1、参考如下的

2、large堆高,只能通过降低并发或者人工降低内存算子大小解决,请看考

3、temp高,如果是元数据,可以通过refresh tables释放很早以前的元数据占用的内存(也就是长时间不用的),也可以通过如下参数进行设置。