南大通用GBase 8a集群启动日志报错Memory manager is unable to allocate specified amount of memory

原因:

GBase 8a数据库集群在启动时,会从操作系统分配足够的物理内存,默认值是物理内存的62.5%,连续的。如不足,则报这个错误。一般是因为有其它程序使用了内存,特别是一些java程序。

解决方案

1、关闭其它占用内存的服务,或者reboot一下。
数据库一旦启动后,就不再检查这个了,而是按照参数进行动态计算最大值(gbase_memory_pct_target)。所以,如果此时内存被其它程序占用,将会使用到SWAP。

2、人工降低数据库的启动内存(确认肯定有其它程序必须占用内存时),涉及如下三个参数

gbase_heap_data
gbase_heap_temp
gbase_heap_large

以及最大内存占用参数
gbase_memory_pct_target

其默认值,是按照如下工时评估的。物理内存的62.5%,按照6:3:1的比例。比如内存100G, 62.5%估算为60G, 那么这3个参数默认是

gbase_heap_data=60G*0.6=36G
gbase_heap_temp=60G*0.3=18G
gbase_heap_large=60G*0.1=6G

可以按比例减少,其中data可以优先,因为其默认比例最大。

参考

各参数情况,请参考