Storage服务配置

    Caution

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

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

    配置文件参数值说明

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

    Note

    Raft Listener的配置和Storage服务配置不同,详情请参见。

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

    basics配置

    • 在插入时间类型的属性值时,Nebula Graph会根据timezone_name设置的时区将该时间值(TIMESTAMP类型例外)转换成相应的UTC时间,因此在查询中返回的时间类型属性值为UTC时间。
    • timezone_name参数只用于转换Nebula Graph中存储的数据,Nebula Graph进程中其它时区相关数据,例如日志打印的时间等,仍然使用主机系统默认的时区。
    名称预设值说明
    log_dirlogs存放Storage服务日志的目录,建议和数据保存在不同硬盘。
    minloglevel0最小日志级别,即不会记录低于这个级别的日志。可选值为0(INFO)、1(WARNING)、2(ERROR)、3(FATAL)。建议在调试时设置为0,生产环境中设置为1。如果设置为4,Nebula Graph不会记录任何日志。
    v0日志详细级别,值越大,日志记录越详细。可选值为0123
    logbufsecs0缓冲日志的最大时间,超时后输出到日志文件。0表示实时输出。单位:秒。
    redirect_stdouttrue是否将标准输出和标准错误重定向到单独的输出文件。
    stdout_log_filestoraged-stdout.log标准输出日志文件名称。
    stderr_log_filestoraged-stderr.log标准错误日志文件名称。
    stderrthreshold2要复制到标准错误中的最小日志级别(minloglevel)。

    networking配置

    Caution

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

    raft配置

    名称预设值说明
    raft_heartbeat_interval_secs30Raft选举超时时间。单位:秒。
    raft_rpc_timeout_ms500Raft客户端的远程过程调用(RPC)超时时间。单位:毫秒。
    wal_ttl14400Raft WAL的生存时间。单位:秒。

    misc配置

    Caution

    下表中的snapshot与Nebula Graph快照是不同的概念,这里的snapshot指Raft同步过程中leader上的存量数据。

    名称预设值说明
    snapshot_part_rate_limit8388608Raft leader向Raft group中其它成员同步存量数据时的限速。单位:字节/秒。
    snapshot_batch_size1048576Raft leader向Raft group中其它成员同步存量数据时每批发送的数据量。单位:字节。
    rebuild_index_part_rate_limit4194304重建索引过程中,Raft leader向Raft group中其它成员同步索引数据时的限速。单位:字节/秒。
    rebuild_index_batch_size1048576重建索引过程中,Raft leader向Raft group中其它成员同步索引数据时每批发送的数据量。单位:字节。

    rocksdb options配置

    rocksdb options配置的格式为{"<option_name>":"<option_value>"},多个选项用英文逗号(,)隔开。

    rocksdb_db_optionsrocksdb_column_family_options支持的选项如下:

    • rocksdb_column_family_options

      1. max_write_buffer_number
      2. level0_file_num_compaction_trigger
      3. level0_slowdown_writes_trigger
      4. level0_stop_writes_trigger
      5. target_file_size_base
      6. target_file_size_multiplier
      7. max_bytes_for_level_base
      8. max_bytes_for_level_multiplier

      参数的详细说明请参见。

    在每个点出发的查询获取到边时,直接截断。目的是避免超级节点的邻边过多,单个查询占用过多的硬盘和内存。截取前 max_edge_returned_per_vertex 个边,多余的边不返回。该参数作用于全局,不用于单个space。

    属性名默认值说明
    max_edge_returned_per_vertex2147483647每个稠密点,最多返回多少条边,多余的边截断不返回。配置文件默认未设置。

    Compatibility

    Nebula Graph 1.x 中的蓄水池采样方法在 Nebula Graph 2.6.0 不再支持。

    数据量大而内存不够时

    如果数据量很大但内存不够,则推荐把 storage 配置中的 enable_partitioned_index_filter 设置为 ;但由于缓存了较少的 RocksDB 索引,性能会受影响。