nebula-graphd占用内存飙升,导致服务器卡死

nebula 3.0.1, os:centos7.8

如题,发现nebula-graphd占用内存高达83%(52g)。


最终导致服务器卡死,把服务kill之后,恢复正常,检查日志,并没有发现特别的ngql,内存直接告警。

我想问下,一般来说,哪些操作会导致内存占用飙升

找到导致内存占用的ngql语句了,使用的篮球运动员的数据集,语句如下:
MATCH (v0:player),(v1:team),(v2:player),(v3:team),(s0:player)-[e0*1]->(t0:team) RETURN v0,v1,v2,v3,s0,e0,t0 LIMIT 100

但,我还是不明白,这个语句为什么会导致内存问题,麻烦答疑一下,谢谢

贴一下执行计划:

v0, v1,v2,v3, s0 做笛卡尔积了, 数据量是 v0 * v1 *v2 *v3 *s0

1 个赞

但是这个数据量级都很少,只有几十条数据的嘛,就算笛卡尔积,也不应该占用好几十个G的嘛

我计算了一下,最后会有1.7亿条结果

如果是v0 * v1 *v2 *v3 *s0的话,应该是4.6亿条数据左右

如计算过程中占用的内存就是4.6亿条数据的空间,还是说有很多其他的临时数据的额外空间呢

其他临时数据在计算后都会 释放掉
每一条的数据是 [v0, v1, v2, v3, (s0)-[e]->(t0) ]. 这样的数组,可以预估一下内存

大致明白了,谢谢大佬,也是胡乱测试搞出来的问题

此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。