nebula多跳查询性能在3跳后下降明显(社区性能测试只到3跳)

我们测试,发现nebula多跳查询性能在3跳后下降明显(社区性能测试只到3跳),这个问题能解决吗

这个问题最好描述清楚,不然大家不知道怎么回答。

没有版本,没有数据量,没有场景,没有语句。无从下手
我说能解决你估计还会追问怎么解决。。最好 case by case 的描述你的问题

@MuYi 你好
补充信息如下:
版本:3.6.0,数据量5000万,
测试语句1:MATCH (v:corp)-[e*1]-(v2)where id(v)==‘c_132’ RETURN e LIMIT 1000;

语句2:
GO 1 to 1 STEPS FROM “c_132” over * BIDIRECT yield edge as e | limit 1000;

机器配置:40C/125G,磁盘是机械盘

话说你 space 的 vid 是什么类型的?
同时,机械盘性能是要慢的

另外,你边的方向是要双向吗?双向的话会多不少应该

@MuYi
vid 是string

@MuYi
我对比测试都是单向的边,六七跳以后,要么是性能急剧下降,要么就是服务器崩溃;

越往后越慢,因为跳数越多,数据量越大,到某一跳就达到极限,就报内部错误;

另外请问下,对于这种内部错误,有什么参数设置,来优化一下?

@MuYi 您好,
vid 是string
我对比测试都是单向的边,六七跳以后,要么是性能急剧下降,要么就是服务器崩溃;

越往后越慢,因为跳数越多,数据量越大,到某一跳就达到极限,就报内部错误;

另外请问下,对于这种内部错误,有什么参数设置,来优化一下?
你看下我还有什么要补充的吗

需要优化的地方应该有很多

  1. 比如建模上, vid 的类型,string 比较占用内存,建议根据实际情况来设置fix_string。不知道你还有没有其他不合适的建模的地方;
  2. 查询语句上,如果你现在需求都是单向,你的查询语句就没有必要用双向,没有必要返回的数据可以不返回(go 应该比 match 要省点内存)
  3. 机器上,磁盘建议换成 SSD。

内部错误应该是达到你内存水位了,要看下你的 schema 的合理性,每条记录存的都是什么,以及你每个点的出度大概是多少

@MuYi
我们也用的fix_string
内部错误应该是达到你内存水位了 —内存占用很少,还有很多内存,这个就奇怪了;

我们的数据集是随机生成的,各点的出度入度都比较均匀,前面几跳都比较正常,就是后面跳数增加到7度左右就有问题了;;
还有就是 用nebula-importer导5000万数据,老是会丢几条数据;

@MuYi 这些问题您遇到过吗,或者有什么好的建议

会不会是原数据又重复的数据呢?这边还没遇到过丢数据的情况,不过比较常见的是数据重复,所以导入之后就数据减少了。

1 个赞

内存达到水位是指运行过程中的时刻因为临时占用内存超大,导致超过水位,你可以看下你之前的崩溃的报错信息,看和什么相关。
到某一跳极限有可能是那跳遇到超级节点或者那跳的数据量确实很多。

@MuYi @steam 多谢,不知道有没有调节内存使用限制量的参数

3.4 开始支持的一个功能。你可以参考下