跳转至

Graph 服务配置

Graph 服务提供了两份初始配置文件nebula-graphd.conf.defaultnebula-graphd.conf.production,方便在不同场景中使用。文件的默认路径为/usr/local/nebula/etc/

Caution

  • 不建议修改local_config的值为false。修改后 Nebula Graph 服务启动后会先尝试从 Meta 服务获取缓存的配置信息,可能导致集群配置不一致,造成未知风险。
  • 不建议修改文档未介绍的配置项,除非已经熟悉源代码并完全了解配置项的作用。

配置文件使用方式

如需使用初始配置文件,从上述两个文件选择其一,删除后缀.default.production,Meta 服务才能将其识别为配置文件并从中获取配置信息。

配置文件参数值说明

配置文件内没有设置某个参数表示参数使用的是默认值。文件内只预设了部分参数的值,而且两份初始配置文件内的参数值也略有不同,本文的预设值以nebula-metad.conf.default为准。

如需查看所有的参数及其当前值,参见配置管理

basics 配置

名称 预设值 说明
daemonize true 是否启动守护进程。
pid_file pids/nebula-graphd.pid 记录进程 ID 的文件。
enable_optimizer true 是否启用优化器。
timezone_name - 指定 Nebula Graph 的时区。初始配置文件中未设置该参数,使用需手动添加。系统默认值为UTC+00:00:00。格式请参见 Specifying the Time Zone with TZ。例如,东八区的设置方式为--timezone_name=UTC+08:00
local_config true 是否从配置文件获取配置信息。

Note

  • 在插入时间类型 的属性值时,Nebula Graph 会根据timezone_name设置的时区将该时间值(TIMESTAMP 类型例外)转换成相应的 UTC 时间,因此在查询中返回的时间类型属性值为 UTC 时间。
  • timezone_name参数只用于转换 Nebula Graph 中存储的数据,Nebula Graph 进程中其它时区相关数据,例如日志打印的时间等,仍然使用主机系统默认的时区。

logging 配置

名称 预设值 说明
log_dir logs 存放 Graph 服务日志的目录,建议和数据保存在不同硬盘。
minloglevel 0 最小日志级别,即不会记录低于这个级别的日志。可选值为0(INFO)、1(WARNING)、2(ERROR)、3(FATAL)。建议在调试时设置为0,生产环境中设置为1。如果设置为4,Nebula Graph 不会记录任何日志。
v 0 日志详细级别,值越大,日志记录越详细。可选值为0123
logbufsecs 0 缓冲日志的最大时间,超时后输出到日志文件。0表示实时输出。单位:秒。
redirect_stdout true 是否将标准输出和标准错误重定向到单独的输出文件。
stdout_log_file graphd-stdout.log 标准输出日志文件名称。
stderr_log_file graphd-stderr.log 标准错误日志文件名称。
stderrthreshold 2 要复制到标准错误中的最小日志级别(minloglevel)。

query 配置

名称 预设值 说明
accept_partial_success false 是否将部分成功视为错误。此配置仅适用于只读请求,写请求总是将部分成功视为错误。
session_reclaim_interval_secs 10 将 Session 信息发送给 Meta 服务的间隔。单位:秒。
max_allowed_query_size 4194304 最大查询语句长度。单位:字节。默认为4194304,即 4MB。

networking 配置

名称 预设值 说明
meta_server_addrs 127.0.0.1:9559 全部 Meta 服务的 IP 地址和端口。多个 Meta 服务用英文逗号(,)分隔。
local_ip 127.0.0.1 Graph 服务的本地 IP 地址。本地 IP 地址用于识别 nebula-graphd 进程,如果是分布式集群或需要远程访问,请修改为对应地址。
listen_netdev any 监听的网络设备。
port 9669 Graph 服务的 RPC 守护进程监听端口。
reuse_port false 是否启用 SO_REUSEPORT。
listen_backlog 1024 socket 监听的连接队列最大长度,调整本参数需要同时调整net.core.somaxconn
client_idle_timeout_secs 0 空闲连接的超时时间。0表示永不超时。单位:秒。
session_idle_timeout_secs 0 空闲会话的超时时间。0表示永不超时。单位:秒。
num_accept_threads 1 接受传入连接的线程数。
num_netio_threads 0 网络 IO 线程数。0表示 CPU 核数。
num_worker_threads 0 执行用户查询的线程数。0表示 CPU 核数。
ws_ip 0.0.0.0 HTTP 服务的 IP 地址。
ws_http_port 19669 HTTP 服务的端口。
ws_h2_port 19670 HTTP2 服务的端口。
heartbeat_interval_secs 10 默认心跳间隔。请确保所有服务的heartbeat_interval_secs取值相同,否则会导致系统无法正常工作。单位:秒。
storage_client_timeout_ms - Graph 服务与 Storage 服务的 RPC 连接超时时间。初始配置文件中未设置该参数,使用需手动添加。默认值为60000毫秒。
ws_meta_http_port 19559 HTTP 协议监听 Meta 服务的端口,需要和 Meta 服务配置文件中的ws_http_port保持一致。

Caution

必须在配置文件中使用真实的 IP 地址。否则某些情况下127.0.0.1/0.0.0.0无法正确解析。

charset and collate 配置

名称 预设值 说明
default_charset utf8 创建图空间时的默认字符集。
default_collate utf8_bin 创建图空间时的默认排序规则。

authorization 配置

名称 预设值 说明
enable_authorize false 用户登录时是否进行身份验证。身份验证详情请参见身份验证
auth_type password 用户登录的身份验证方式。取值为passwordldapcloud

memory 配置

名称 预设值 说明
system_memory_high_watermark_ratio - 内存高水位报警机制的触发阈值,默认为0.8。系统内存占用率高于该值会触发报警机制,Nebula Graph 会停止接受查询。

experimental 配置

名称 预设值 说明
enable_experimental_feature false 实验性功能开关。可选值为truefalse。当前支持的实验性功能请参见下文。

experimental 功能说明

名称 说明
TOSS TOSS(Transaction on Storage Side)功能,用于保证对边进行INSERTUPDATEUPSERT操作的最终一致性(因为逻辑上的一条边对应着硬盘上的两个键值对)。暂不支持DELETE操作。开启后会增加相关操作的时延约 1 倍。

最后更新: March 7, 2023