Nebula Bench 是一款利用 LDBC 数据集对 Nebula Graph 进行性能测试的工具。本文是通过Nebula Bench进行性能测试的实践总结。
版本CentOS | 7.9 |
Nebula Graph | v3.2.0 |
• 生产 LDBC 数据集并导入 nebula graph。
• 用 k6 进行压测。
1.克隆Nebula Bench仓库到本地并安装相关包
git clone https://github.com/vesoft-inc/nebula-bench.git
cd nebula-bench
pip3 install --user -r requirements.txt
python3 run.py --help
2.搭建Golang环境
•
• 将安装包解压到相应文件夹
tar -zxvf <go_package_name> -C <path>/golang
• 添加环境变量
#打开环境变量文件
vim /etc/profile
添加如下命令
#GOROOT是Go的安装路径,GOPATH是工作路径,GOBIN是Go编译后生成的可执行文件。
GOROOT="<path>/golang/go"
GOPATH="<path>/goCode"
GOBIN="<path>/gobin"
export PATH=$PATH:$GOPATH/bin:$GOPATH:$GOBIN
3.编译相关工具
•
编译后,二进制包在 scripts 文件夹中。
4.生成 LDBC 数据
5.将数据通过Nebula Importer导入Nebula Graph
6.使用K6进行测压
自动化的场景,在 nebula_bench/scenarios/ 中
7.测试结果
统计
动作 | 数据量 | 用时 |
向Importer中导入数据 | 20437762条语句 | 245.75s |
查询种类 | 路径查询 | 一跳查询 | 二条查询 | 三跳查询 | |
语句数量 | 30899条 | 316932条 | 49487条 | 3857条 | |
每次执行耗时 | Min | 1.59ms | 618.62μs | 762.37μs | 806μs |
Max | 1.02s | 1.01s | 1.76s | 13.65s | |
Avg | 194.69ms | 18.91ms | 120.79ms | 1.57s | |
平均执行速度 | 503.47条/s | 5183.87条/s | 810.2条/s | 61.92条/s | |
服务端耗时 | Min | 1738 | 295 | 430 | 524 |
Max | 277524 | 37448 | 202485 | 1727720 | |
Avg | 23149.9 | 1054.16 | 7203.8 | 246801.15 | |
客户端耗时 | Min | 32446 | 516 | 642 | 743 |
Max | 547875 | 133677 | 1761805 | 13650878 | |
Avg | 194548.3 | 18369 | 115244 | 1554994.9 | |
并发用户数 | 100 | 100 | 100 | 44 |