Star

常见问题 FAQ(frequently asked questions)

Trouble Shooting

Trouble Shooting 部分列出了 Nebula Graph 操作中的常见错误。

graphd 的配置没有注册到 meta server

nebula.service 脚本启动服务时,graphdmetadstoraged 进程启动速度太快,可能会导致 graphd 的配置没有注册到 meta server。restart 的时候也有此问题。

beta 版本用户可以先启动 metad,再启动 storaged 和 graphd 来避免此问题。我们将在下一个版本解决此问题。

先启动 metad:

nebula> scripts/nebula.service start metad
[INFO] Starting nebula-metad...
[INFO] Done

再启动 storaged 和 graphd:

nebula> scripts/nebula.service start storaged
[INFO] Starting nebula-storaged...
[INFO] Done
nebula> scripts/nebula.service start graphd
[INFO] Starting nebula-graphd...
[INFO] Done

当创建 tag 或者 edge 类型后,插入数据时报错

可能原因, heartbeat_interval_secs 设置了从 meta server 获取元数据时间间隔。更改方式:

如果 meta 注册过配置,请在 console 中运行以下命令查看参数 heartbeat_interval_secs 的值。

nebula> GET CONFIGS storage:heartbeat_interval_secs
nebula> GET CONFIGS graph:heartbeat_interval_secs

如果值过大,运行以下命令将值更改为 1s

nebula> UPDATE CONFIGS storage:heartbeat_interval_secs=1
nebula> UPDATE CONFIGS graph:heartbeat_interval_secs=1

注意,更改不会立即生效,需在下个周期生效。

使用 Docker 启动后,执行命令时报错

可能的原因是 Docker 的 IP 地址和默认配置中的监听地址不一致(默认是 172.17.0.2),因此这里需要修改默认配置中的监听地址。

  1. 首先在容器中执行 ifconfig 命令,查看您的容器地址,这里假设您的容器地址是172.17.0.3,那么就意味着您需要修改默认配置的IP地址。
  2. 然后进入配置目录(cd /usr/local/nebula/etc), 查找所有IP地址配置的位置(grep “172.17.0.2” . -r)。
  3. 修改上一步查到的所有IP地址为您的容器地址(172.17.0.3)。
  4. 最后重新启动所有服务(/usr/local/nebula/scripts/nebula.service start all)。

storaged 服务无法正常启动

同一台主机先后用于单机测试和集群测试,storaged 服务无法正常启动(终端上显示的 storaged 服务的监听端口是红色的)。查看 storged 服务的日志(/usr/local/nebula/nebula-storaged.ERROR),若发现 “wrong cluster” 的报错信息,则可能的出错原因是单机测试和集群测试时的 Nebula Graph 生成的 cluster id 不一致,需要删除 Nebula Graph 安装目录(/usr/local/nebula)下的 cluster.id 文件和 data 目录后,重启服务。

Connection Refused

E1121 04:49:34.563858   256 GraphClient.cpp:54] Thrift rpc call failed: AsyncSocketException: connect failed, type = Socket not open, errno = 111 (Connection refused): Connection refused

检查服务是否存在

$ /usr/local/nebula/scripts/nebula.service status all

进程异常 crash

  1. 检查硬盘空间 df -h
  2. 检查内存是否足够 free -h

未找到日志和更改日志级别

日志文件默认在 /usr/local/nebula/logs/ 下。

配置文件

配置文件默认在 /usr/local/nebula/etc/ 下。

运行时参数

在 Nebula console 中运行

nebula> SHOW CONFIGS;

Could not create logging file:... Too many open files

  1. 检查硬盘空间 df -h
  2. 检查日志目录 /usr/local/nebula/logs/
  3. 修改允许打开的最大文件数 ulimit -n 65536

如何查看 Nebula Graph 版本信息

使用 curl http://ip:port/status 命令获取 git_info_sha、binary 包的 commitID。

General Information

General Information 部分列出了关于 Nebula Graph 的概念性问题。

查询返回时间解释

nebula> GO FROM 101 OVER follow
===============
| follow._dst |
===============
| 100         |
---------------
| 102         |
---------------
| 125         |
---------------
Got 3 rows (Time spent: 7431/10406 us)

以上述查询为例,Time spent 中前一个数字 7431 为数据库本身所花费的时间,即 query engine 从 console 收到这条查询语句,到存储拿到数据,并进行一系列计算所花的时间;后一个数字 10406 是从客户端角度看花费的时间,即 console 从发送请求,到收到响应,并将结果输出到屏幕的时间。

生产环境的机型配置建议

对标AWS EC2的话,建议如下:
3台

########## bench ###########  
  # AWS EC2 c5d.12xlarge 
  # vCPU 48  
  # memory 96 GiB 
  # Disk 2 * 900GiB NVMe SSD 

可以参考这里
https://github.com/vesoft-inc/nebula/pull/1833/files

1赞

浙ICP备20010487号