大数跨境
0
0

Nebula Graph v2.6.0 性能报告

Nebula Graph v2.6.0 性能报告 NebulaGraph
2021-11-08
2
导读:有图有真相,内附 v2.6.0 和 v2.5.0 性能对比图表。



本文目录

  • 测试环境

  • 测试数据

  • Nebula  Commit

  • 测试用例和结果

    • 查询不带点属性和边属性

    • 查询带边属性信息

    • 查询带目的点属性信息

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

    • LOOKUP
    • MATCH
    • MATCH 一跳
    • MATCH 两跳
  • 2.6.0 vs 2.5.0

    • 查询不带属性/边信息

    • 查询带边属性信息

    • 查询带目的点属性信息

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

    • LOOKUP
    • MATCH
    • MATCH 一跳
    • MATCH 两跳
  • 参数配置

>>>>

测试环境

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

* 注意:服务器设置 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

以上。

如果对本次报告有任何疑问,欢迎来论坛交流:https://discuss.nebula-graph.com.cn/ (同「阅读原文」)


🙋‍♂️ 👍 

谢谢哟^^

【声明】内容源于网络
0
0
NebulaGraph
一个开源的分布式图数据库
内容 731
粉丝 0
NebulaGraph 一个开源的分布式图数据库
总阅读403
粉丝0
内容731