Graph 服务配置¶
Graph 服务提供了两份初始配置文件nebula-graphd.conf.default
和nebula-graphd.conf.production
,方便在不同场景中使用。文件的默认路径为/usr/local/nebula/etc/
。
Caution
- 不建议修改
local_config
的值为false
。修改后NebulaGraph服务启动后会先尝试从 Meta 服务获取缓存的配置信息,可能导致集群配置不一致,造成未知风险。 - 不建议修改文档未介绍的配置项,除非已经熟悉源代码并完全了解配置项的作用。
配置文件使用方式¶
如需使用初始配置文件,从上述两个文件选择其一,删除后缀.default
或.production
,Graph 服务才能将其识别为配置文件并从中获取配置信息。
配置文件参数值说明¶
配置文件内没有设置某个参数表示参数使用的是默认值。文件内只预设了部分参数的值,而且两份初始配置文件内的参数值也略有不同,本文的预设值以nebula-graphd.conf.default
为准。
Caution
配置文件中的部分参数值可以在运行时动态修改。本文将这些参数标记为支持运行时动态修改,并当local_config
值设置为true
时重启服务后配置会恢复为初始配置。详情参见修改配置。
如需查看所有的参数及其当前值,参见配置管理。
basics 配置¶
名称 | 预设值 | 说明 | 是否支持运行时动态修改 |
---|---|---|---|
daemonize |
true |
是否启动守护进程。 | 不支持 |
pid_file |
pids/nebula-graphd.pid |
记录进程 ID 的文件。 | 不支持 |
enable_optimizer |
true |
是否启用优化器。 | 不支持 |
timezone_name |
- | 指定NebulaGraph的时区。初始配置文件中未设置该参数,使用需手动添加。系统默认值为UTC+00:00:00 。格式请参见 Specifying the Time Zone with TZ。例如,东八区的设置方式为--timezone_name=UTC+08:00 。 |
不支持 |
local_config |
true |
是否从配置文件获取配置信息。 | 不支持 |
Note
- 在插入时间类型 的属性值时,NebulaGraph会根据
timezone_name
设置的时区将该时间值(TIMESTAMP 类型例外)转换成相应的 UTC 时间,因此在查询中返回的时间类型属性值为 UTC 时间。 timezone_name
参数只用于转换NebulaGraph中存储的数据,NebulaGraph进程中其它时区相关数据,例如日志打印的时间等,仍然使用主机系统默认的时区。
logging 配置¶
名称 | 预设值 | 说明 | 是否支持运行时动态修改 |
---|---|---|---|
log_dir |
logs |
存放 Graph 服务日志的目录,建议和数据保存在不同硬盘。 | 不支持 |
minloglevel |
0 |
最小日志级别,即记录此级别或更高级别的日志。可选值为0 (INFO)、1 (WARNING)、2 (ERROR)、3 (FATAL)。建议在调试时设置为0 ,生产环境中设置为1 。如果设置为4 ,NebulaGraph不会记录任何日志。 |
支持 |
v |
0 |
VLOG 日志详细级别,即记录小于或等于此级别的所有 VLOG 消息。可选值为0 、1 、2 、3 、4 、5 。glog 提供的 VLOG 宏允许用户定义自己的数字日志记录级别,并用参数v 控制记录哪些详细消息。详情参见 Verbose Logging。 |
支持 |
logbufsecs |
0 |
缓冲日志的最大时间,超时后输出到日志文件。0 表示实时输出。单位:秒。 |
不支持 |
redirect_stdout |
true |
是否将标准输出和标准错误重定向到单独的输出文件。 | 不支持 |
stdout_log_file |
graphd-stdout.log |
标准输出日志文件名称。 | 不支持 |
stderr_log_file |
graphd-stderr.log |
标准错误日志文件名称。 | 不支持 |
stderrthreshold |
3 |
要复制到标准错误中的最小日志级别(minloglevel )。 |
不支持 |
timestamp_in_logfile_name |
true |
日志文件名称中是否包含时间戳。true 表示包含,false 表示不包含。 |
不支持 |
query 配置¶
名称 | 预设值 | 说明 | 是否支持运行时动态修改 |
---|---|---|---|
accept_partial_success |
false |
是否将部分成功视为错误。此配置仅适用于只读请求,写请求总是将部分成功视为错误。 | 支持 |
session_reclaim_interval_secs |
60 |
将 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 |
28800 |
空闲连接的超时时间。取值范围为 1~604800,单位:秒。默认 8 小时。 | 不支持 |
session_idle_timeout_secs |
28800 |
空闲会话的超时时间。取值范围为 1~604800。默认 8 小时。单位:秒。 | 不支持 |
num_accept_threads |
1 |
接受传入连接的线程数。 | 不支持 |
num_netio_threads |
0 |
网络 IO 线程数。0 表示 CPU 核数。 |
不支持 |
num_max_connections |
0 |
所有网络线程的最大活动连接数,0 表示没有限制。每个网络线程的最大连接数= num_max_connections /num_netio_threads 。 |
不支持 |
num_worker_threads |
0 |
执行用户查询的线程数。0 表示 CPU 核数。 |
不支持 |
ws_ip |
0.0.0.0 |
HTTP 服务的 IP 地址。 | 不支持 |
ws_http_port |
19669 |
HTTP 服务的端口。 | 不支持 |
heartbeat_interval_secs |
10 |
默认心跳间隔。请确保所有服务的heartbeat_interval_secs 取值相同,否则会导致系统无法正常工作。单位:秒。 |
支持 |
storage_client_timeout_ms |
- | Graph 服务与 Storage 服务的 RPC 连接超时时间。初始配置文件中未设置该参数,使用需手动添加。默认值为60000 毫秒。 |
不支持 |
enable_record_slow_query |
true |
是否启用慢查询记录。注:企业版功能。 | 不支持 |
slow_query_limit |
100 |
慢查询记录的最大条数。注:企业版功能。 | 不支持 |
slow_query_threshold_us |
200000 |
定义超过多长时间的查询为慢查询。单位:微秒。 | 不支持 |
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 |
用户登录的身份验证方式。取值为password 、ldap 、cloud 。 |
不支持 |
memory 配置¶
名称 | 预设值 | 说明 | 是否支持运行时动态修改 |
---|---|---|---|
system_memory_high_watermark_ratio |
0.8 |
内存高水位报警机制的触发阈值。系统内存占用率高于该值会触发报警机制,NebulaGraph会停止接受查询。 | 支持 |
metrics 配置¶
名称 | 预设值 | 说明 | 是否支持运行时动态修改 |
---|---|---|---|
enable_space_level_metrics |
false |
开启后可打开图空间级别的监控,对应的监控指标名称中包含图空间的名称,例如query_latency_us{space=basketballplayer}.avg.3600 。支持的监控指标可用curl 命令查看,详细说明参见查询监控指标。 |
不支持 |
session 配置¶
名称 | 预设值 | 说明 | 是否支持运行时动态修改 |
---|---|---|---|
max_sessions_per_ip_per_user |
300 |
相同用户和 IP 地址可以创建的最大活跃会话数。 | 不支持 |
experimental 配置¶
名称 | 预设值 | 说明 | 是否支持运行时动态修改 |
---|---|---|---|
enable_experimental_feature |
false |
实验性功能开关。可选值为true 和false 。 |
不支持 |
enable_data_balance |
true |
是否开启均衡分片功能。仅当enable_experimental_feature 为true 时生效。 |
不支持 |
memory tracker 配置¶
名称 | 预设值 | 说明 | 是否支持运行时动态修改 |
---|---|---|---|
memory_tracker_limit_ratio |
0.8 |
可用内存的百分比,当可用内存低于该值时,NebulaGraph会停止接受查询。 计算公式:可用内存/(总内存 - 保留内存)。 注意:对于混合部署的集群,需要根据实际情况调小该参数。例如,当预期 Graphd 只占用 50% 的内存时,该参数的值可设置为小于 0.5 。 |
支持 |
memory_tracker_untracked_reserved_memory_mb |
50 |
保留内存的大小,单位:MB。 | 支持 |
memory_tracker_detail_log |
false |
是否定期生成较详细的内存跟踪日志。当值为true 时,会定期生成内存跟踪日志。 |
支持 |
memory_tracker_detail_log_interval_ms |
60000 |
内存跟踪日志的生成时间间隔,单位:毫秒。仅当memory_tracker_detail_log 为true 时,该参数生效。 |
支持 |
memory_purge_enabled |
true |
是否定期开启内存清理功能。当值为true 时,会定期清理内存。 |
支持 |
memory_purge_interval_seconds |
10 |
内存清理的时间间隔,单位:秒。memory_purge_enabled 为true 时,该参数生效。 |
支持 |
performance optimization 配置¶
名称 | 预设值 | 说明 | 是否支持运行时动态修改 |
---|---|---|---|
max_job_size |
1 |
最大作业并发数,即查询执行时在可以并发执行的阶段所采用的最大线程数。建议为物理 CPU 核数的一半。 | 支持 |
min_batch_size |
8192 |
处理数据集的最小批处理大小。仅在max_job_size 大于 1 时生效。 |
支持 |
optimize_appendvertices |
false |
启用后,执行MATCH 语句时不过滤悬挂边。 |
支持 |
path_batch_size |
10000 |
每个线程构建的路径数。 | 支持 |
最后更新:
January 31, 2024