暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase 8a集群启动日志报错express total heap size exceeds memory limit

原创 Danny 2021-06-24
1120

原因是GBase 8a在启动时会检查当前内存是否可以满足内存分配要求,如果不满足则报这个错误。一般常见于内存很小的场景,以及已经有其它大量占用内存的程序在运行的情况。解决方案包括扩大内存、减少数据库内存参数以及杀掉其它占用内存的进程等。

默认内存检测公式

gbase_heap_data + gbase_heap_temp + gbase_heap_large + gbase_buffer_insert <= (物理内存+swap空间) * gbase_memory_pct_target

其中gbase_memory_pct_target默认值是0.8,也就是80%

而内存不足的可能性

1、有其它进程占用了内存。 特别是一些java程序。

2、内存检测依赖操作系统,有可能不准

二级标题解决方案

1、清理其它占用内存的程序,不要部署在数据库节点上。

2、或者人工减少数据库的启动内存参数,

gbase_heap_data
gbase_heap_temp
gbase_heap_large

3、调整操作系统内核参数【未经大规模项目验证,不建议使用】

vm.overcommit_memory 设置相关。
取值为:
 0 – Heuristic overcommit handling(缺省值,试探式申请。内核利用某种算法猜测内存申请是否合理,它认为不合理就会拒绝)
 1 – Always overcommit
 2 – Don’t overcommit
为了保证GBase申请内存成功,可以设置vm.overcommit_memory=1

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论