nebula ldbc测试性能低于neo4j,如何调优?

测试环境

单台服务器,ubuntu20,512GB内存,多块ssd组成raid容量13TB,处理器Intel(R) Xeon(R) Gold 5320 CPU @ 2.20GHz

测试系统

nebula 3.3,默认配置单机部署(1 storage)
neo4j 4.4.17社区版

测试数据

SF100,neo4j落盘大小134G,nebula落盘大小108G

short query测试

由于driver中没有为short query生成测试参数,因此简单的手动进行了测试
neo4j使用cypher-shell,nebula使用nebula-console
nebula使用了默认的参数配置,neo4j则是创建了索引以及调整了page cache大小


测试结果里有两个数据的,第一个表示第一次运行这个query,第二个表示多次运行后的值(应该是缓存起了加速)
query 5 6 7使用了相同的参数,导致neo4j直接缓存了内容速度很快。但是在将page cache限制到2G后,在query 1 2 3 4中,nebula并没有比neo4j性能更高。

complex query 1

由于测试参数的datetime类型没处理好,因此只测了complex1
得到的结果是
image

求助

目前由于测试环境没有弄好,因此只简单的测了几个query。根据之前的了解,nebula的性能高于neo4j,但我的测试里可能因为测试参数的不均匀,导致neo4j对访问的数据都进行了缓存,从而导致性能高于nebula。

希望大佬分享一些nebula的调优配置经验

感觉是因为neo4j page cache起了作用,不知道nebula是否也有相应的调优、

嗯应该是page cache,nebula我刚看另一个帖子可以调block cache大小,不知道还有没有其他优化点

NebulaGraph 目前版本主要的性能优势在高并发的偏 TP 的图查询和数据量比较大的分布式场景中的增删改查。针对偏复杂的查询,我们正在密集研发,未来版本会有非常好的性能。

关于如何优化 NebulaGraph 现有版本的性能,包括怎么调节 cache 参数、并发参数等等,可以参考社区帖子或者文档,比如 Nebula 性能问题排查和性能调优

1 个赞
  1. block cache 现在是给了多少?
  2. 数据导入之后是否 compact 过?

用的是make install后的默认配置,我看应该只有4M。数据导入后没有手动compact

  1. block cache 可以给大点,比如机器内存的一半 256G
  2. 对该 space 手动 compact 下, SUBMIT JOB COMPAC; 然后等会,使用 SHOW JOBS 查看是否 compact 完毕。
1 个赞

感谢大佬orz

调完参数测了之后,方便的话,可以回来贴个对比