This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

HugeGraph-API Performance

HugeGraph API性能测试主要测试HugeGraph-Server对RESTful API请求的并发处理能力,包括:

  • 顶点/边的单条插入
  • 顶点/边的批量插入
  • 顶点/边的查询

HugeGraph的每个发布版本的RESTful API的性能测试情况可以参考:

即将更新,敬请期待!

1 - v0.5.6 Stand-alone(RocksDB)

Note:

当前的性能指标测试基于很早期的版本。最新版本在性能和功能上都有显著的改进。我们鼓励您参考最新的发布版本, 该版本具有自主分布式存储增强的计算推下能力。或者,您可以等待社区更新相关测试数据 (也欢迎反馈共建)。

1 测试环境

被压机器信息

CPUMemory网卡磁盘
48 Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz128G10000Mbps750GB SSD,2.7T HDD
  • 起压力机器信息:与被压机器同配置
  • 测试工具:apache-Jmeter-2.5.1

注:起压机器和被压机器在同一机房

2 测试说明

2.1 名词定义(时间的单位均为 ms)

  • Samples – 本次场景中一共完成了多少个线程
  • Average – 平均响应时间
  • Median – 统计意义上面的响应时间的中值
  • 90% Line – 所有线程中 90% 的线程的响应时间都小于 xx
  • Min – 最小响应时间
  • Max – 最大响应时间
  • Error – 出错率
  • Throughput – 吞吐量
  • KB/sec – 以流量做衡量的吞吐量

2.2 底层存储

后端存储使用 RocksDB,HugeGraph 与 RocksDB 都在同一机器上启动,server 相关的配置文件除主机和端口有修改外,其余均保持默认。

3 性能结果总结

  1. HugeGraph 单条插入顶点和边的速度在每秒 1w 左右
  2. 顶点和边的批量插入速度远大于单条插入速度
  3. 按 id 查询顶点和边的并发度可达到 13000 以上,且请求的平均延时小于 50ms

4 测试结果及分析

4.1 batch 插入

4.1.1 压力上限测试
测试方法

不断提升并发量,测试 server 仍能正常提供服务的压力上限

压力参数

持续时间:5min

顶点的最大插入速度:
image
结论:
  • 并发 2200,顶点的吞吐量是 2026.8,每秒可处理的数据:2026.8*200=405360/s
边的最大插入速度
image
结论:
  • 并发 900,边的吞吐量是 776.9,每秒可处理的数据:776.9*500=388450/s

4.2 single 插入

4.2.1 压力上限测试
测试方法

不断提升并发量,测试 server 仍能正常提供服务的压力上限

压力参数
  • 持续时间:5min
  • 服务异常标志:错误率大于 0.00%
顶点的单条插入
image
结论:
  • 并发 11500,吞吐量为 10730,顶点的单条插入并发能力为 11500
边的单条插入
image
结论:
  • 并发 9000,吞吐量是 8418,边的单条插入并发能力为 9000

4.3 按 id 查询

4.3.1 压力上限测试
测试方法

不断提升并发量,测试 server 仍能正常提供服务的压力上限

压力参数
  • 持续时间:5min
  • 服务异常标志:错误率大于 0.00%
顶点的按 id 查询
image
结论:
  • 并发 14000,吞吐量是 12663,顶点的按 id 查询的并发能力为 14000,平均延时为 44ms
边的按 id 查询
image
结论:
  • 并发 13000,吞吐量是 12225,边的按 id 查询的并发能力为 13000,平均延时为 12ms

2 - v0.5.6 Cluster(Cassandra)

Note:

当前的性能指标测试基于很早期的版本。最新版本在性能和功能上都有显著的改进。我们鼓励您参考最新的发布版本, 该版本具有自主分布式存储增强的计算推下能力。或者,您可以等待社区更新相关测试数据 (也欢迎反馈共建)。

1 测试环境

被压机器信息

CPUMemory网卡磁盘
48 Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz128G10000Mbps750GB SSD,2.7T HDD
  • 起压力机器信息:与被压机器同配置
  • 测试工具:apache-Jmeter-2.5.1

注:起压机器和被压机器在同一机房

2 测试说明

2.1 名词定义(时间的单位均为 ms)

  • Samples – 本次场景中一共完成了多少个线程
  • Average – 平均响应时间
  • Median – 统计意义上面的响应时间的中值
  • 90% Line – 所有线程中 90% 的线程的响应时间都小于 xx
  • Min – 最小响应时间
  • Max – 最大响应时间
  • Error – 出错率
  • Throughput – 吞吐量
  • KB/sec – 以流量做衡量的吞吐量

2.2 底层存储

后端存储使用 15 节点 Cassandra 集群,HugeGraph 与 Cassandra 集群位于不同的服务器,server 相关的配置文件除主机和端口有修改外,其余均保持默认。

3 性能结果总结

  1. HugeGraph 单条插入顶点和边的速度分别为 9000 和 4500
  2. 顶点和边的批量插入速度分别为5w/s和15w/s,远大于单条插入速度
  3. 按 id 查询顶点和边的并发度可达到 12000 以上,且请求的平均延时小于 70ms

4 测试结果及分析

4.1 batch 插入

4.1.1 压力上限测试
测试方法

不断提升并发量,测试 server 仍能正常提供服务的压力上限

压力参数

持续时间:5min

顶点的最大插入速度:
image
结论:
  • 并发 3500,顶点的吞吐量是 261,每秒可处理的数据:261*200=52200/s
边的最大插入速度
image
结论:
  • 并发 1000,边的吞吐量是 323,每秒可处理的数据:323*500=161500/s

4.2 single 插入

4.2.1 压力上限测试
测试方法

不断提升并发量,测试 server 仍能正常提供服务的压力上限

压力参数
  • 持续时间:5min
  • 服务异常标志:错误率大于 0.00%
顶点的单条插入
image
结论:
  • 并发 9000,吞吐量为 8400,顶点的单条插入并发能力为 9000
边的单条插入
image
结论:
  • 并发 4500,吞吐量是 4160,边的单条插入并发能力为 4500

4.3 按 id 查询

4.3.1 压力上限测试
测试方法

不断提升并发量,测试 server 仍能正常提供服务的压力上限

压力参数
  • 持续时间:5min
  • 服务异常标志:错误率大于 0.00%
顶点的按 id 查询
image
结论:
  • 并发 14500,吞吐量是 13576,顶点的按 id 查询的并发能力为 14500,平均延时为 11ms
边的按 id 查询
image
结论:
  • 并发 12000,吞吐量是 10688,边的按 id 查询的并发能力为 12000,平均延时为 63ms