高并发java-client graphd GO查询报错

nebula 版本:V2.5.1
部署方式:分布式
安装方式: RPM
是否为线上版本:Y /
硬件信息
磁盘 hdd
128G内存 3T硬盘
10台机器
1-3 metad
1-10 graphd
-1-10 storage

导入100亿数据量,在进行压力测试过程中发现如下问题:

其中代码nebulaPoolConfig.setMaxConnSize(10000);
单个服务GO查询,图中输出了查询语句

10并发下没有问题,100并发下就会出现图上问题,请问可否告知原因及解决办法?

是内存水位的报错(因为是图片转文字有几个字母不对,但是已经看出来是 watermark 的问题了) :

Used `e`ory(130540720KB) hits the high yater`arh(0.800000)&ta`&syste` `e`ory(131842926KB).

请参考文档,搜索 watermark,被query的graphd 内存占用到了 80%

这个在部署已经修改过相关graphd配置为watermark1.0,local_config=true
查看十台graphd,发现内存 free -h 中 available为118G,但是buff/cache为114G,手动清空buff/cache后,再次压测正常

1 个赞

嗯嗯,这个 cached 没有被算为可用的 bug 在2.6.0和现在的master 里都得到了修复,在 2.5.x 上还需要手动释放 cached memory

1 个赞

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