单节点测试图库使用exchange导入亿级数据的高并发插入失败的问题

  • nebula 版本:2.5.0
  • 部署方式:单机
  • 安装方式:Docker
  • 是否为线上版本:N
  • 硬件信息
    • 磁盘( 推荐使用 SSD) 1T
    • CPU 8核
    • 内存 32G
  • 问题的具体描述
    部署单机图库(graphd、storaged、metad服务各为一个),使用exchange导入亿级数据并发过高时会一直报插入失败;后续一直将batch、partition参数不断调小测试仍未解决;即使batch调为4, partition调为2,虽然报错率减少,但跑到后续触发reload job又会出现高并发插入导致报错的场景。请问在不增加机器资源和改变图库架构,有什么办法可以解决此问题?
  • 相关的 meta / storage / graph info 日志信息
    graph log:

spark log:

代码 / 终端输出 / 日志…

我看了下报了 rpc 的错误,你试试调整下storage_client_timeout_ms 参数呢。

我设了1800s,依然一直会有报错。数据量较多,只能把timeout继续调大这种方法吗 :fearful:

导数据过程中服务器的cpu、内存、磁盘剩余都是很充足的,也不是资源的问题啊

默认单位是 ms,:thinking: 你确定下你设置成多少了。

我问问实施同学哈,稍等。

确认过了,刚刚我又设置到6小时。但是在数据开始插入就报错了

image

有报错信息吗


同上,持续输出rpc_failure的错误… 设置storage_client_timeout_ms并不能解决

1.麻烦提供一下导入命令和配置文件
2.这个需要看下storage的log
3.关闭auto_compactions再试试

1.导入命令:


配置文件:


2.storage 每次报错信息

纠正一下:storaged没有报错信息

3.这个也不像是compaction的原因吧,图库我是重新搭建、无数据的环境状态开始跑到。在spark开始跑插入数据的stage时,就会一直输出这个rpc_failure的报错


graph连不上storage?这个我也不太确定,也可能是连不上meta
docker-compose ps 看看是否所有的 nebula 的容器进程都正常


服务是正常的,我导数据期间能正常查询使用;报错都是在并发导入数据的时候出现的 :fearful:,kill掉exchange就没有报错了

麻烦给一下storage的LOG。怀疑是Raft出了问题

storaged log没有任何信息 :joy: 我没设置到最详细日志等级,起码没有报错信息

啥硬盘

HDD; 但是我生产环境的图库集群(3台)导相同数据并没有报错。并且这个单节点图库导几百w数据也是没有报错的,当在导入的数据到达千万和亿级就复现这个报错问题 :zipper_mouth_face: