Skip to content

Configure Key Settings

chengshiwen edited this page Sep 18, 2024 · 1 revision

配置重点设置项

CN doc EN doc LICENSE Releases GitHub stars Docker pulls

重点设置项 (cpu/内存/磁盘io/超时/日志)

Data 节点重点设置项

# 节点主机名称,必须设置为当前 hostname 或 ip,默认为 localhost
hostname = "localhost"

[data]
  # 数据目录
  dir = "/var/lib/influxdb/data"
  # 预写日志目录(write ahead log)
  wal-dir = "/var/lib/influxdb/wal"
  # fsync 调用之前的写等待时间,默认为 0s,SSD 设置为 0s,非 SSD 推荐设置为 0ms-100ms
  # 若要降低磁盘 io,则适当调大
  wal-fsync-delay = "0s"
  # inmem 内存索引(需要大量内存、降低启动时间),tsi1 基于磁盘的时序索引,默认为 inmem
  index-version = "inmem"
  # 查询日志开关,可视情况关闭
  query-log-enabled = true
  # 分片缓存在拒绝 /write 请求前能写入的最大内存大小,默认为 1g
  # 若服务器内存较小,则适当调小;若要降低磁盘 io,则适当调大
  cache-max-memory-size = "1g"
  # tsm 引擎将快照缓存并将其写入 tsm 文件的缓存大小,完成后释放内存,默认为 25m
  # 若服务器内存较小,则适当调小;若要降低磁盘 io,则适当调大
  cache-snapshot-memory-size = "25m"
  # 持续一段时间后,如果分片没有收到写入或删除,tsm 引擎将对缓存快照并写入新的 TSM 文件,默认为 10m
  # 若要降低 cpu 压缩计算和磁盘 io,则适当调大,但避免时间过长一直占用内存
  cache-snapshot-write-cold-duration = "10m"
  # 持续一段时间后,如果 tsm 引擎未收到写入或删除,tsm 引擎将压缩分片中的所有 TSM 文件,默认为 4h
  # 若要降低 cpu 压缩计算和磁盘 io,则适当调大
  compact-full-write-cold-duration = "4h"
  # tsm 压缩每秒写入磁盘的平均字节数,默认为 48m,允许短暂突发瞬间可以达到 compact-throughput-burst
  # 若要降低磁盘 io,则适当调小,但避免过小导致压缩周期变长
  compact-throughput = "48m"
  # tsm 压缩在短暂突发瞬间每秒写入磁盘的最大字节数,默认为 48m
  # 若要降低磁盘 io,则适当调小,但避免过小导致压缩周期变长
  compact-throughput-burst = "48m"
  # 最大并发压缩数,默认值 0 会将 50% 的 CPU 核心数用于压缩
  # 若要降低 cpu 压缩计算和磁盘 io,则适当调小,但避免过小导致压缩周期变长
  max-concurrent-compactions = 0
  # 分片上同时执行的 delete 调用的最大数量,默认为 1
  # 若要提升删除性能,可适当调大
  max-concurrent-deletes = 1
  # inmem 设置项:在删除写入之前每个数据库允许的 series 的最大数量,设置 0 则不限制
  max-series-per-database = 1000000
  # inmem 设置项:每个 tag 键允许的 tag 值的最大数量,设置 0 则不限制
  max-values-per-tag = 100000
  # tsi1 设置项:预写日志 wal 文件将压缩为索引文件时的阈值大小
  # 较小的阈值将导致日志文件更快地压缩,并导致较低的堆内存使用量,但会以写入吞吐量为代价
  # 更大的阈值将不会频繁地压缩,在内存中存储更多的 series,并提供更高的写入吞吐量
  # 若要降低 cpu 压缩计算和磁盘 io,则适当调大,但避免过大导致一直占用内存
  # 若服务器内存较小,则适当调小或保持不变
  max-index-log-file-size = "1m"
  # tsi1 设置项:tsi 索引中用于存储先前计算的 series 结果的内部缓存大小
  # 缓存结果将从缓存中快速返回,而不需要对匹配 tag 键值的后续查询进行重新计算
  # 将此值设置为 0 将禁用缓存,这可能会导致查询性能问题
  # 若服务器内存较小,则适当调小
  series-id-set-cache-size = 100
  # series 文件分区同时运行的最大并发快照压缩数,默认值 0 会使用全部 CPU 核心数用于压缩
  series-file-max-concurrent-snapshot-compactions = 0
  # 提供有关 tsm 引擎的更详细的 trace 日志,tsm 出问题时可开启
  trace-logging-enabled = false

[coordinator]
  # 节点之间 tcp 拨号的超时时间,默认为 1s
  dial-timeout = "1s"
  # 两个节点之间的空闲连接池中保留的最大空闲 rpc 流连接数
  pool-max-idle-streams = 100
  # 与另一个数据节点的 tcp 连接在连接池中保持空闲的最大时间
  pool-max-idle-time = "60s"
  # 允许乱序写入,默认为 false
  # 默认情况下,写入将按接收顺序进行处理,即如果任何点位于分片的 hh 队列中,则所有写入点都必须先进入 hh 队列
  # 如果为 true,则写入的处理顺序可能与接收顺序不同。这可以减少排空 hh 队列所需的时间并提高恢复期间的吞吐量
  # 如果您的用例涉及更新点,请勿启用,这可能会导致数据被乱序覆盖
  allow-out-of-order-writes = false
  # 分片读取器上设置的默认超时,默认值 0 表示不限制
  # 查询连接必须在此时间后返回响应,否则系统将返回错误
  shard-reader-timeout = "0s"
  # 集群 trace 日志,可视情况关闭
  cluster-tracing = false
  # 写入请求超时时间,默认为 10s
  write-timeout = "20s"
  # 最大并发查询数,默认值 0 表示不限制
  max-concurrent-queries = 0
  # 在终止查询之前允许执行查询的最长持续时间,默认值 0 表示不限制
  query-timeout = "0s"
  # 慢查询的最大持续时间,一个查询超出该时间将打印 Detected slow query 日志
  # 默认值 0s 表示不记录慢查询
  log-queries-after = "0s"
  # 启用由于超出 query-timeout 而被终止的查询的日志记录
  log-timedout-queries = false

[monitor]
  # 内部记录统计信息开关,生产环境中若数据量较大,会影响内存及cpu,建议关闭
  store-enabled = true
  # 记录统计信息的时间间隔,生产环境中若数据量较大,但需要开启监控,则调大间隔
  store-interval = "10s"

[http]
  # http 请求日志,可视情况关闭
  log-enabled = true
  # 详细写入日志开关
  write-tracing = false
  # flux 查询开关
  flux-enabled = false
  # flux 查询日志开关
  flux-log-enabled = false

[logging]
  # 日志等级,error、warn、info(默认)、debug,可视情况调整等级
  level = "info"

[hinted-handoff]
  # hh 存储目录
  dir = "/var/lib/influxdb/hh"
  # hh 队列的最大大小,单位为字节,默认为 10g
  # 每个队列只用于集群中的一个其它数据节点,如果集群中有 n 个数据节点,则每个数据节点最多可以有 n-1 个 hh 队列
  max-size = 10737418240
  # 数据在 hh 队列保留的最大时间,超过该时间后数据将被清除,从而可能导致数据丢失
  # 该时间由该数据在队列中停留的时间决定,而不是由数据中的时间戳决定
  max-age = "168h0m0s"
  # 源数据节点尝试写入每个目标数据节点的 hh 数据块的最大数量
  retry-concurrency = 20
  # hh 重试写入的速率限制(以字节/秒为单位),默认值 0 表示禁用速率限制
  retry-rate-limit = 0
  # hh 写入失败后,重试写入的时间间隔,默认为 1s
  retry-interval = "1s"
  # hh 写入失败后,重试写入的最大时间间隔,默认为 10s
  retry-max-interval = "10s"
  # hh 检查清除超过 max-age 的数据的间隔,默认为 1m
  purge-interval = "1m0s"
  # 单个请求中写入分片的最大字节数,默认为 512000
  batch-size = 512000
  # hh 队列中允许的最大传入待处理写入数量,默认为 1024
  max-writes-pending = 1024

Meta 节点重点设置项

# 节点主机名称,必须设置为当前 hostname 或 ip,默认为 localhost
hostname = "localhost"

[meta]
  # 元数据存储目录
  dir = "/var/lib/influxdb/meta"
  # 日志开关,可视情况关闭
  logging-enabled = true
  # 集群 trace 日志,可视情况开启
  cluster-tracing = false

[logging]
  # 日志等级,error、warn、info(默认)、debug,可视情况调整等级
  level = "info"
Clone this wiki locally