-
Notifications
You must be signed in to change notification settings - Fork 149
Configure Key Settings
chengshiwen edited this page Sep 18, 2024
·
1 revision
重点设置项 (cpu/内存/磁盘io/超时/日志):
# 节点主机名称,必须设置为当前 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
# 节点主机名称,必须设置为当前 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"