Nebula Graph v2.6.0 性能报告

本文目录

  • 测试环境
  • 测试数据
  • Nebula Commit
  • 测试用例和结果
    • 查询不带点属性和边属性
    • 查询带边属性信息
    • 查询带目的点属性信息
    • 查询带边属性+目的点属性
    • LOOKUP
    • MATCH
    • MATCH 一跳
    • MATCH 两跳
  • 2.6.0 vs 2.5.0
    • 查询不带点属性和边属性
    • 查询带边属性信息
    • 查询带目的点属性信息
    • 查询带边属性+目的点属性
    • LOOKUP
    • MATCH
    • MATCH 一跳
    • MATCH 两跳
  • 参数配置

测试环境

服务器和压测机皆为物理机:

Nebula Graph v2.6 性能报告

  • 注意:服务器设置 CPU 为 Performance 模式。
$ cpupower frequency-info
analyzing CPU 0:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 10.0 us
  hardware limits: 800 MHz - 3.40 GHz
  available frequency steps:  3.40 GHz, 2.20 GHz, 2.10 GHz, 2.00 GHz, 1.90 GHz, 1.80 GHz, 1.70 GHz, 1.60 GHz, 1.50 GHz, 1.40 GHz, 1.30 GHz, 1.20 GHz, 1.10 GHz, 1000 MHz, 900 MHz, 800 MHz
  available cpufreq governors: conservative userspace powersave ondemand performance
  current policy: frequency should be within 800 MHz and 3.40 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency: Unable to call hardware
  current CPU frequency: 3.40 GHz (asserted by call to kernel)
  boost state support:
    Supported: yes
    Active: yes

测试数据

LDBC_SNB_SF100

24 Partitions

3 Replica Factors

Nebula Commit

  • nebula-graphd version 3ba41bd
  • nebula-storaged version 11d8257a

测试用例和结果

查询不带属性/边信息

GO {} STEP FROM {} OVER KNOWS

一跳·吞吐率

一跳·服务端耗时(ms)

一跳·客户端耗时(ms)

两跳·吞吐率

两跳·服务端耗时(ms)

两跳·客户端耗时(ms)

三跳·吞吐率

三跳·服务端耗时(ms)

三跳·客户端耗时(ms)

查询不带属性/边信息

GO {} STEP FROM {} OVER KNOWS yield KNOWS.creationDate

一跳·吞吐率

一跳·服务端耗时(ms)

一跳·客户端耗时(ms)

两跳·吞吐率

两跳·服务端耗时(ms)

两跳·客户端耗时(ms)

三跳·吞吐率

三跳·服务端耗时(ms)

三跳·客户端耗时(ms)

查询带目的点属性信息

GO {} STEP FROM {} OVER KNOWS yield $$.Person.firstName

一跳·吞吐率

一跳·服务端耗时(ms)

一跳·客户端耗时(ms)

两跳·吞吐率

两跳·服务端耗时(ms)

两跳·客户端耗时(ms)

三跳·吞吐率

三跳·服务端耗时(ms)

三跳·客户端耗时(ms)

查询带边属性+目的点属性

GO {} STEP FROM {} OVER KNOWS yield DISTINCT KNOWS.creationDate as t, $$.Person.firstName, $$.Person.lastName, $$.Person.birthday as birth | order by $-.t, $-.birth | limit 10

一跳·吞吐率

一跳·服务端耗时(ms)

一跳·客户端耗时(ms)

两跳·吞吐率

两跳·服务端耗时(ms)

两跳·客户端耗时(ms)

三跳·吞吐率

三跳·服务端耗时(ms)

三跳·客户端耗时(ms)

LOOKUP

LOOKUP ON Person WHERE Person.firstName == '{}' YIELD Person.firstName, Person.lastName, Person.gender, Person.birthday, Person.creationDate, Person.locationIP, Person.browserUsed

吞吐率

服务端耗时(ms)

客户端耗时(ms)

MATCH

MATCH (v:Person) WHERE v.firstName == '{}' RETURN v

服务端耗时(ms)

客户端耗时(ms)

MATCH 一跳

MATCH (v1:Person)-[e:KNOWS]->(v2:Person) WHERE id(v1) == {} RETURN v2

吞吐率

服务端耗时(ms)

客户端耗时(ms)

MATCH 两跳

MATCH (v1:Person)-[e:KNOWS*2]->(v2:Person) WHERE id(v1) == {} RETURN v2

吞吐率

服务端耗时(ms)

客户端耗时(ms)

2.6.0 vs 2.5.0

以下数据选取平均值。

查询不带属性/边信息

GO {} STEP FROM {} OVER KNOWS

一跳·吞吐率

一跳·服务端耗时(ms)

一跳·客户端耗时(ms)

两跳·吞吐率

两跳·服务端耗时(ms)

两跳·客户端耗时(ms)

三跳·吞吐率

三跳·服务端耗时(ms)

三跳·客户端耗时(ms)

查询不带属性/边信息

GO {} STEP FROM {} OVER KNOWS yield KNOWS.creationDate

一跳·吞吐率

一跳·服务端耗时(ms)

一跳·客户端耗时(ms)

两跳·吞吐率

两跳·服务端耗时(ms)

两跳·客户端耗时(ms)

三跳·吞吐率

三跳·服务端耗时(ms)

三跳·客户端耗时(ms)

查询带目的点属性信息

GO {} STEP FROM {} OVER KNOWS yield $$.Person.firstName

一跳·吞吐率

一跳·服务端耗时(ms)

一跳·客户端耗时(ms)

两跳·吞吐率

两跳·服务端耗时(ms)

两跳·客户端耗时(ms)

三跳·吞吐率

三跳·服务端耗时(ms)

三跳·客户端耗时(ms)

查询带边属性+目的点属性

GO {} STEP FROM {} OVER KNOWS yield DISTINCT KNOWS.creationDate as t, $$.Person.firstName, $$.Person.lastName, $$.Person.birthday as birth | order by $-.t, $-.birth | limit 10

一跳·吞吐率

一跳·服务端耗时(ms)

一跳·客户端耗时(ms)

两跳·吞吐率

两跳·服务端耗时(ms)

两跳·客户端耗时(ms)

三跳·吞吐率

三跳·服务端耗时(ms)

三跳·客户端耗时(ms)

LOOKUP

LOOKUP ON Person WHERE Person.firstName == '{}' YIELD Person.firstName, Person.lastName, Person.gender, Person.birthday, Person.creationDate, Person.locationIP, Person.browserUsed

吞吐率

服务端耗时(ms)

客户端耗时(ms)

MATCH

MATCH (v:Person) WHERE v.firstName == '{}' RETURN v

服务端耗时(ms)

客户端耗时(ms)

MATCH 一跳

MATCH (v1:Person)-[e:KNOWS]->(v2:Person) WHERE id(v1) == {} RETURN v2

吞吐率

服务端耗时(ms)

客户端耗时(ms)

MATCH 两跳

MATCH (v1:Person)-[e:KNOWS*2]->(v2:Person) WHERE id(v1) == {} RETURN v2

吞吐率

服务端耗时(ms)

客户端耗时(ms)

参数配置

Storage:

  • rocksdb_block_cache=81920
  • heartbeat_interval_secs=10
  • max_handlers_per_req=1

其他配置:

  • minloglevel=2
  • local_config=true

以上。

本文中如有任何错误或疏漏,欢迎去 GitHub:https://github.com/vesoft-inc/nebula issue 区向我们提 issue 或者前往官方论坛:https://discuss.nebula-graph.com.cn/建议反馈 分类下提建议 :clap:;交流图数据库技术?加入 Nebula 交流群请先填写下你的 Nebula 名片,Nebula 小助手会拉你进群~~


这是一个从 https://nebula-graph.com.cn/posts/nebula-graph-v2.6.0-benchmark-report/ 下的原始话题分离的讨论话题
1 个赞