南大通用GBase 8a数据库集群_gbase_dc_window_size参数

GBase 8a数据库集群,在一个SQL内部要缓冲一部分数据,通过_gbase_dc_window_size 参数。如果设置过小,当需要缓存的实际数据量超过设置的DC数时,就需要频繁的从磁盘读取数据,然后释放,然后再读取,可能导致CPU的sys占用高。如果设置过大,则会占用更多的内存,但由于减少了换入换出次数,性能会有所提高。

用途:

可缓存到内存的DC数。

默认值

256

参数范围

[1,65536]

修改方法 

gnode的配置文件的gbased部分,增加参数_gbase_dc_window_size=64  

重启gbased服务,然后确认参数生效 

gncli -e"show variables like '_gbase_dc_window_size‘"

分析方法

 show status like '%dc_heap%'; 

其中Meminfo_dc_heap_malloc_size分配超过0,且经常因headp_data_buffer内存malloc不足报错(三个报错信息数字里的第一个数字高)。 BLK_TEMP: return NULL in alloc(8388620),HeapUsed(18288255904,2601731328,3035596000),SystemUsed(22624634748,0,2241434316), 

说明

一般建议不超过5000个,具体根据机器内存,数据情况决定。

如当内存为64G时,设定为64~300,内存为128G时,设定为500~1000。

参数影响

   DC热数据缓冲,减少后,可以缓解内存不足,避免一个大表SQL占用太多热数据,特别参与的列很多时。
   同时,缓冲少了,如果数据多趟使用,但刚缓冲的数据被换出了内存,则会导致更多的磁盘读取。