user9
2022 年2 月 24 日 07:43
1
nebula 版本:3.0.0
部署方式:单机
安装方式:RPM
服务器配置:4核8G
CPU:AMD EPYC 7K62 48-Core Processor
磁盘:100G(不是固态)
现在测试的数据有50W节点和50W边的样子
然后查询语句是最新的多MATCH检索
大概就是下面这个样子(嗯,肯定是不对的,就那个意思嘛)
MATCH (q)-[:g]->(p)<-[:g]-(d)
with q,d,count(p)
match (q)-[:g]->(p)
with q,d,COLLECT(p) AS s1
match (d)-[:g]->(p)
with q,d,s1,collect(p) as s2
with q,d,s1+[x in s2 where not x IN s1] AS uion,s1,s2
RETURN q.Sid,other.Sid,s1,s2,uion((1.0)/SIZE(uion)) AS jaccard ORDER BY jaccard DESC LIMIT 100
测试的结果大概是15qps的样子
最后我想问这个结果是不是正常的?因为.Net的客户端是我自己改的,所以不知道性能是否合理
1 个赞
user9
2022 年2 月 24 日 08:04
4
CPU:AMD EPYC 7K62 48-Core Processor
磁盘:100G(不是固态)
然后还有些其他服务在运行的,所以大佬就大概估一下嘛
steam
2022 年2 月 24 日 08:36
5
本身来说的话,文档也写明了,我们是不推荐使用 HDD 的,
我找个查询同学看看你的语句是否存在优化的空间。
顺便问一句,你的 .net 客户端是自己写的吗?还是基于我们社区用户贡献的 .net 客户端二次开发的呢。社区版的 .net 客户端 https://github.com/nebula-contrib/nebula-net
user9
2022 年2 月 24 日 08:53
6
对,一开始是从那个项目开始改的,然后仿照java的加了对象池
1 个赞
steam
2022 年2 月 24 日 09:37
9
你可以和作者交流下啊,我和他沟通过了,你可以机翻下你的功能变成英文的说明,提个 pr 给他啊 就是一起交流下开发思路和技术啊
可以先用 console 执行单个语句看一下耗时和数据量,然后用 k6 跑一下一样的并发数,做个对比。
2 个赞
steam
2022 年2 月 28 日 05:40
13
可以先用 console 执行单个语句看一下耗时和数据量,然后用 k6 跑一下一样的并发数,做个对比。
你按照 Harris 的说法试试看,记得更新下帖子进展哈
user9
2022 年3 月 1 日 01:58
14
console远程执行单条语句:
k6不太会用,一直提示错误:GoError: authentication fails, Invalid data length
user9
2022 年3 月 2 日 02:09
18
两者的环境也有点差异:
k6是在我本地调用远程Nebula数据库
Nebula.Net是使用测试工具在本地调用远程部署的Api应用,然后再调用另一台服务器的数据库
只从 k6 的这个图上看,
有 2 个请求错误了 (可以把结果放一个文件里,看看错误是什么)
最大的 latency 400ms,而最大的 responseTime 是 4s。
要么就是你语句里有大点,返回的数据特别多。
要么就是客户端和服务端的网络带宽比较小,时间都耗在网络传输上了。
你本地和远程 nebula 之间的网络是怎么样的,可以的话,把 k6 放在 nebula 一个网络上试试。
1 个赞
user9
2022 年3 月 2 日 05:46
20
错误信息:std::bad_alloc: std::bad_alloc
数据我是限制返回前50条
Nebula是部署在腾讯云服务器上面的
不过现在差不多也算解决了我的问题,至少粗略来看我这个.Net客户端是可用的
system
关闭
2022 年4 月 1 日 05:46
21
此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。