复现k6测试nebula性能过程中,k6可以连接nebula pool但是无法登陆的问题

  • nebula 版本:v3.0.0
  • 部署方式:单机
  • 安装方式: RPM
  • 硬件信息
    • 磁盘 :SSD
    • CPU、内存信息
      image
      k6版本号:
      image

主要问题:
首先当把nebula graph和k6安装好了以后,可以通过nebula-console连接nebulagragh成功


按照https://github.com/vesoft-inc/k6-plugin步骤去运用k6连接nebula,会出现一个GoError,具体信息以及js文件如下:

其中nebula-test.js的内容如下:

import nebulaPool from 'k6/x/nebulagraph';
import { check } from 'k6';
import { Trend } from 'k6/metrics';
import { sleep } from 'k6';

var lantencyTrend = new Trend('latency');
var responseTrend = new Trend('responseTime');
// initial nebula connect pool
var pool = nebulaPool.init("127.0.0.1:9669", 400);
// initial session for every vu
var session = pool.getSession("root", "nebula")
session.execute("USE ldbc")

export function setup() {
	// config csv file
	pool.configCSV("person.csv", "|", false)
	// config output file, save every query information
	pool.configOutput("output.csv")
	sleep(1)
}

export default function (data) {
	// get csv data from csv file
	let d = session.getData()
	// d[0] means the first column data in the csv file
	let ngql = 'go 2 steps from ' + d[0] + ' over KNOWS '
	let response = session.execute(ngql)
	check(response, {
		"IsSucceed": (r) => r.isSucceed() === true
	});
	// add trend
	lantencyTrend.add(response.getLatency());
	responseTrend.add(response.getResponseTime());

};

export function teardown() {
	pool.close()
}

经过一行行验证,出错位置为:

var session = pool.getSession("root", "nebula")

随后尝试在nebula中开启身份验证


运行后依然报错,随后修改root密码再次运行

运行结果依然报错:
image

找到对应的版本

麻烦下载链接里的K6工具再试试?
https://github.com/vesoft-inc/k6-plugin/releases/tag/v0.0.9

1 个赞

好的,问一下这个表格是在哪里可以看,问题已解决十分感谢

在这个链接里

如果问题解决了的话,可以勾选 Henry 的回复为解决方案哈。方便后续遇到相似问题的小伙伴一眼就能看到对应的方法。谢谢 user22

另外,关于这个nebula-bench中的这一步


它会自动生成yaml文件,如果我想修改它自动生成的代码并运行应该怎么操作呢?
就比如说我想让它生成的版本号改为v3,password改为nebula1,创建图空间的名字改为person,应该怎么进行操作或者修改哪个脚本里的代码?
我直接修改yaml文件再执行python3 run.py nebula importer它依然会恢复成这个样子进行数据导入

另外就是问一下,测试结果的qps具体是通过k6返回的什么数据计算的。
是不是用下图中complete前的数字除以下面的时间

# 生成 yaml
python3 run.py nebula importer --dry-run 
# 改 yaml 后,手动用 importer 导入
./scripts/nebula-importer -config importer_config.yaml

或者你手动改一下参数

# 里面有提示
python3 run.py nebula importer  --help

python3 run.py nebula importer  --password xxx --address xxx

是的,2597/4.1 s

需要注意的是,k6 有启动和停止的时间,就是逐步增加并发,和逐步停止并发。
所以你如果运行的时间很少,数据会有出入。

好的谢谢

那能问一下,因为我之前只是想先把它跑起来,设置的单次时间为三秒,如果想得到一些具有参考性的数据,应该怎么去设置呢

单次时间跑长一点,比如 3 分钟,如果并发大的话,可以跑更久一点。

还是导入数据到nebula-graph的步骤中,默认的yaml文件中创建图空间的partition-num和replica-factor这两个怎么修改呢

那个没放出来参数,要么你手动创建 space,要么生产 yaml 以后,手动改完用 importer 导入

好的,额这边导入数据集的时候又出现了一种报错,麻烦帮忙看一下应该怎么解决呢

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。