现象:ETL加载失败。
Select* from etl_task_log where stime>now()-3 and task_status<>0;
报错信息:detail:(GBA-01EX-700)Gbase general error:(gns_host:xxx.xxx.x.xx) socket error,Connection was closed. 连接数据库失败。
分析:
登录报错服务器
(1)查看是否操作系统宕机,执行uptime。查看操作系统运行时间,有没有宕机。
(2)到gnode层下,查看system.log看下gbase服务是否宕过机。
cd /opt/gnode/log/gbase
More system.Log 发现在数据加载失败时间节点,gbase宕机。
但====================以上未打印服务停止原因。
也就是非数据库原因停止的服务,很可能是操作系统将gbased服务杀掉。
(3)到/var/log 下查看messages信息中是否有oom关键字
cd /var/log
cat messages |grep ‘May 13’|grep oom
说明gbased服务时占用内存过多 被操作系统kill掉了。
(4)查看每台服务器的内存多大
Free 显示126G
(5)查看gbased层config 目录下的配置文件中几个堆内存的大小
cd /opt/gnode/config
cat gbase_8a_gbase.cnf |grep heap
内容如下:
gbase_heap_data=36G 主要设计用途是缓存数据(DC),应分配最多的内存
gbase_heap_temp=8G 用于管理不频繁申请、释放的大块儿内存。
gbase_heap_larger=8G 用来分配较为琐碎的和小块儿的临时内存,较少使用
解决方案:
根据以上查询到的信息,得知是参数gbase_heap_data过大导致, 建议将参数gbase_heap_data=36G调小一些,由36G修改成24G
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




