1、相关配置信息
-
nebula 版本:nebula graph v2.5.1
-
部署方式(分布式):
- 201、202、203 部署Nebula Graph集群
- 001 运行压测工具 K6
-
服务器信息(4台机器一样的配置)
- CPU:2(单CPU十四核) E5-2690 v4 @ 2.60GHz* /
- 内存:256GB
- 硬盘: 2*960GB SSD
- 网卡:2*10000Mb/s
2、问题具体描述
- K6压测工具,根据业务场景,分别执行如下两条语句,得到的结果是 使用 where语句性能差一些(在多个场景下已经复现),如下所示
match (src:PROPERTY{name:'{}'})-[:SYNONYM]->(dst:PROPERTY) return dst
match (src:PROPERTY)-[:SYNONYM]->(dst:PROPERTY) where src.name == '{}' return dst
- 执行以上NGQL语句,发现一个问题,使用where语句时的latency快,但其response时间长,同时QPS也相对较小,请问下是否遇到类似情况,什么原因导致的 where语句性能上的差异?
3、K6相关输出信息
- K6 工具输出内容 600s(不使用where)
INFO[0000] 2021/09/27 16:38:03 [INFO] finish init the pool
execution: local
script: output/1-synonym-name.js
output: -
scenarios: (100.00%) 1 scenario, 300 max VUs, 10m30s max duration (incl. graceful stop):
* default: 300 looping VUs for 10m0s (gracefulStop: 30s)
INFO[0602] 2021/09/27 16:48:04 [INFO] begin close the nebula pool
running (10m01.0s), 000/300 VUs, 36505499 complete and 0 interrupted iterations
default ✓ [======================================] 300 VUs 10m0s
INFO[0637] 2021/09/27 16:48:40 [INFO] begin init the nebula pool
INFO[0637] 2021/09/27 16:48:40 [INFO] connection pool is initialized successfully
INFO[0637] 2021/09/27 16:48:40 [INFO] finish init the pool
✓ IsSucceed
█ setup
█ teardown
checks...............: 100.00% ✓ 36505499 ✗ 0
data_received........: 0 B 0 B/s
data_sent............: 0 B 0 B/s
iteration_duration...: min=1.57ms avg=4.91ms med=4.21ms max=1s p(90)=7.86ms p(95)=9.57ms p(99)=13.77ms
iterations...........: 36505499 60738.993506/s
latency..............: min=1192 avg=3861.751766 med=3152 max=47965 p(90)=6632 p(95)=8221 p(99)=11943
responseTime.........: min=1350 avg=4688.071612 med=4033 max=72860 p(90)=7600 p(95)=9269 p(99)=13282
vus..................: 300 min=0 max=300
vus_max..............: 300 min=300 max=300
- K6 工具输出内容 600s(使用where)
INFO[0000] 2021/09/27 18:25:20 [INFO] finish init the pool
execution: local
script: scripts/2-synonym-name-where.js
output: -
scenarios: (100.00%) 1 scenario, 300 max VUs, 10m30s max duration (incl. graceful stop):
* default: 300 looping VUs for 10m0s (gracefulStop: 30s)
INFO[0603] 2021/09/27 18:35:22 [INFO] begin close the nebula pool
running (10m02.2s), 000/300 VUs, 34431596 complete and 0 interrupted iterations
default ✓ [======================================] 300 VUs 10m0s
INFO[0636] 2021/09/27 18:35:55 [INFO] begin init the nebula pool
INFO[0636] 2021/09/27 18:35:55 [INFO] connection pool is initialized successfully
INFO[0636] 2021/09/27 18:35:55 [INFO] finish init the pool
✓ IsSucceed
█ setup
█ teardown
checks...............: 100.00% ✓ 34431596 ✗ 0
data_received........: 0 B 0 B/s
data_sent............: 0 B 0 B/s
iteration_duration...: min=1.65ms avg=5.21ms med=4.51ms max=2.14s p(90)=8.18ms p(95)=9.97ms p(99)=14.26ms
iterations...........: 34431596 57180.279734/s
latency..............: min=1255 avg=3793.779895 med=3027 max=48020 p(90)=6577 p(95)=8267 p(99)=12167
responseTime.........: min=1455 avg=5009.584435 med=4358 max=80948 p(90)=7952 p(95)=9725 p(99)=13880
vus..................: 300 min=0 max=300
vus_max..............: 300 min=300 max=300