关于nebula-storage配置问题

能稳定复现吗,直接attach进去看看 :sweat_smile: log里面,机器挂掉附近时间点的语句是什么,比如parsing xxx啥的

稳定复现可以做到 等virt 到240+ 自己就挂了。感觉就是虚拟内存不释放的问题。


这个现在已经快120了。到240+就可以出现

附近没有什么日志信息的,看过好几次了,感觉就是虚拟内存的增加引起的,这个是哪里可以调整控制吗

:joy:别忘了我啊

这是一直在跑各种语句吗?

是的 就是按正常的线上应用再跑

晚上没任务跑的时候就没事,白天上班了就不行了

:rofl: :grin:还搭理我吗

稍等片刻哈

关于最开始的问题,block cache降到了4M,是会显著降低性能的。按照工业界经验,可以将block cache设置成2/3内存大小。可否试验一下,将block cache设置成2/3内存大小后,是否出现上述core dump问题。

block cache 已经调整为100G,现在主要是nebula graph宕机。

240G附近,graphd和storage分别占用的virt和res是多少呢?




由于现在流量降低了,所以不太容易复现那种情况,目前三台服务器情况如上,给人的感觉就是nebula graph使用的内存一直在增长而没有释放的过程。有没有什么方案可以实现nebula graph内存释放

executor-pri3-4[162595]: segfault at 18 ip 0000000001067031 sp 00007f6885cf4060 error 4 in nebula-graphd[ece000+1754000] 这是系统的报错。内存越界,nebula-graph放到最大的日志记录,ERROR和WARRING也没有有用信息。INFO每次的信息都不一样。

69def2bb-a164-4256-4ce1ff8f-6fc0397f.dmp (5.1 MB)
这是崩溃时产生的dmp文件,但是看不懂啥意思,能帮忙看下吗

这个是breakpad的mini dump,我处理了一下:


@jmq2020 帮忙看下有没有问题?

1 个赞

最好可以把 graph 挂掉的时候 执行的ngql语句发一下,看了@xjc 发的堆栈信息不是很完整

match (m:Ncdgrkh)-[r1:Rrz|Rfrdb|Rtz|Rsjkzr|Rlxr]->(gs:Ngs) where id(m) ==“Nzrr_34” with m, gs match pas=(gs:Ngs)<-[r1:Rrz|Rfrdb|Rtz|Rsjkzr|Rlxr]-(m:Ncdgrkh)-[r2:Rrz|Rfrdb|Rtz|Rsjkzr|Rlxr]-> (co:Ngs)<-[r3:Rrz|Rfrdb|Rtz|Rsjkzr|Rlxr]-(n:Nzrr)-[r4:Rrz|Rfrdb|Rtz|Rsjkzr|Rlxr]->(:Ngs)-[r5:Rrz|Rfrdb|Rtz|Rsjkzr|Rlxr]-(:Nzrr) where id(m)<>id(n) and r2.is_valid == “0” and r3.is_valid == “0” and r4.is_valid == “0” and r5.is_valid == “0” return pas,‘司’ as rule limit 30 我们这边抓了一下 ,这种语句跑时间长了就会导致graph挂掉,这个是需要修改语句吗,还是有别的解决方案

语句没问题,时间长了 graph 挂掉,能否确定一下当时的内存情况,是内存满了被系统挂掉 还是内存正常,graph挂掉了