暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

tikv raftstore配置参数

原创 luckyone 2022-07-20
1236

raftstore

raftstore 相关的配置项。

prevote

  • 开启 Prevote 的开关,开启有助于减少隔离恢复后对系统造成的抖动。
  • 默认值:true

capacity

  • 存储容量,即允许的最大数据存储大小。如果没有设置,则使用当前磁盘容量。如果要将多个 TiKV 实例部署在同一块物理磁盘上,需要在 TiKV 配置中添加该参数,参见混合部署的关键参数介绍
  • 默认值:0
  • 单位:KB|MB|GB

raftdb-path

  • raft 库的路径,默认存储在 storage.data-dir/raft 下。
  • 默认值:""

raft-base-tick-interval


注意

该配置项不支持通过 SQL 语句查询,但支持在配置文件中进行配置。

  • 状态机 tick 一次的间隔时间。
  • 默认值:1s
  • 最小值:大于 0

raft-heartbeat-ticks


注意

该配置项不支持通过 SQL 语句查询,但支持在配置文件中进行配置。

  • 发送心跳时经过的 tick 个数,即每隔 raft-base-tick-interval * raft-heartbeat-ticks 时间发送一次心跳。
  • 默认值:2
  • 最小值:大于 0

raft-election-timeout-ticks


注意

该配置项不支持通过 SQL 语句查询,但支持在配置文件中进行配置。

  • 发起选举时经过的 tick 个数,即如果处于无主状态,大约经过 raft-base-tick-interval * raft-election-timeout-ticks 时间以后发起选举。
  • 默认值:10
  • 最小值:raft-heartbeat-ticks

raft-min-election-timeout-ticks


注意

该配置项不支持通过 SQL 语句查询,但支持在配置文件中进行配置。

  • 发起选举时至少经过的 tick 个数,如果为 0,则表示使用 raft-election-timeout-ticks,不能比 raft-election-timeout-ticks 小。
  • 默认值:0
  • 最小值:0

raft-max-election-timeout-ticks


注意

该配置项不支持通过 SQL 语句查询,但支持在配置文件中进行配置。

  • 发起选举时最多经过的 tick 个数,如果为 0,则表示使用 raft-election-timeout-ticks * 2。
  • 默认值:0
  • 最小值:0

raft-max-size-per-msg

  • 产生的单个消息包的大小限制,软限制。
  • 默认值:1MB
  • 最小值:大于 0
  • 最大值: 3GB
  • 单位:KB|MB|GB

raft-max-inflight-msgs

  • 待确认的日志个数,如果超过这个数量,Raft 状态机会减缓发送日志的速度。
  • 默认值:256
  • 最小值:大于 0
  • 最大值: 16384

raft-entry-max-size

  • 单个日志最大大小,硬限制。
  • 默认值:8MB
  • 最小值:0
  • 单位:MB|GB

raft-log-compact-sync-interval 从 v5.3 版本开始引入

  • 压缩非必要 Raft 日志的时间间隔
  • 默认值:"2s"
  • 最小值:"0s"

raft-log-gc-tick-interval

  • 删除 Raft 日志的轮询任务调度间隔时间,0 表示不启用。
  • 默认值:"3s"
  • 最小值:"0s"

raft-log-gc-threshold

  • 允许残余的 Raft 日志个数,这是一个软限制。
  • 默认值:50
  • 最小值:1

raft-log-gc-count-limit

  • 允许残余的 Raft 日志个数,这是一个硬限制。默认值为按照每个日志 1MB 而计算出来的 3/4 region 大小所能容纳的日志个数。
  • 最小值:0

raft-log-gc-size-limit

  • 允许残余的 Raft 日志大小,这是一个硬限制,默认为 region 大小的 3/4。
  • 最小值:大于 0

raft-log-reserve-max-ticks 从 v5.3 版本开始引入

  • 超过本配置项设置的的 tick 数后,即使剩余 Raft 日志的数量没有达到 raft-log-gc-threshold 设置的值,TiKV 也会进行 GC 操作。
  • 默认值:6
  • 最小值:大于 0

raft-entry-cache-life-time

  • 内存中日志 cache 允许的最长残留时间。
  • 默认值:30s
  • 最小值:0

hibernate-regions

  • 打开或关闭静默 Region。打开后,如果 Region 长时间处于非活跃状态,即被自动设置为静默状态。静默状态的 Region 可以降低 Leader 和 Follower 之间心跳信息的系统开销。可以通过 peer-stale-state-check-interval 调整 Leader 和 Follower 之间的心跳间隔。
  • 默认值:v5.0.2 及以后版本默认值为 true,v5.0.2 以前的版本默认值为 false

split-region-check-tick-interval

  • 检查 region 是否需要分裂的时间间隔,0 表示不启用。
  • 默认值:10s
  • 最小值:0

region-split-check-diff

  • 允许 region 数据超过指定大小的最大值,默认为 region 大小的 1/16。
  • 最小值:0

region-compact-check-interval

  • 检查是否需要人工触发 rocksdb compaction 的时间间隔,0 表示不启用。
  • 默认值:5m
  • 最小值:0

region-compact-check-step

  • 每轮校验人工 compaction 时,一次性检查的 region 个数。
  • 默认值:100
  • 最小值:0

region-compact-min-tombstones

  • 触发 rocksdb compaction 需要的 tombstone 个数。
  • 默认值:10000
  • 最小值:0

region-compact-tombstones-percent

  • 触发 rocksdb compaction 需要的 tombstone 所占比例。
  • 默认值:30
  • 最小值:1
  • 最大值:100

pd-heartbeat-tick-interval

  • 触发 region 对 PD 心跳的时间间隔,0 表示不启用。
  • 默认值:1m
  • 最小值:0

pd-store-heartbeat-tick-interval

  • 触发 store 对 PD 心跳的时间间隔,0 表示不启用。
  • 默认值:10s
  • 最小值:0

snap-mgr-gc-tick-interval

  • 触发回收过期 snapshot 文件的时间间隔,0 表示不启用。
  • 默认值:1m
  • 最小值:0

snap-gc-timeout

  • snapshot 文件的最长保存时间。
  • 默认值:4h
  • 最小值:0

snap-generator-pool-size 从 v5.4.0 版本开始引入

  • 用于配置 snap-generator 线程池的大小。
  • 为了让 TiKV 在恢复场景下加快 Region 生成 Snapshot 的速度,需要调大对应 Worker 的 snap-generator 线程数量。可通过本配置项调大对应线程的数量。
  • 默认值:2
  • 最小值:1

lock-cf-compact-interval

  • 触发对 lock CF compact 检查的时间间隔。
  • 默认值:10m
  • 最小值:0

lock-cf-compact-bytes-threshold

  • 触发对 lock CF 进行 compact 的大小。
  • 默认值:256MB
  • 最小值:0
  • 单位:MB

notify-capacity

  • region 消息队列的最长长度。
  • 默认值:40960
  • 最小值:0

messages-per-tick

  • 每轮处理的消息最大个数。
  • 默认值:4096
  • 最小值:0

max-peer-down-duration

  • 副本允许的最长未响应时间,超过将被标记为 down,后续 PD 会尝试将其删掉。
  • 默认值:10m
  • 最小值:当 Hibernate Region 功能启用时,为 peer-stale-state-check-interval * 2;Hibernate Region 功能关闭时,为 0。

max-leader-missing-duration

  • 允许副本处于无主状态的最长时间,超过将会向 PD 校验自己是否已经被删除。
  • 默认值:2h
  • 最小值:> abnormal-leader-missing-duration

abnormal-leader-missing-duration

  • 允许副本处于无主状态的时间,超过将视为异常,标记在 metrics 和日志中。
  • 默认值:10m
  • 最小值:> peer-stale-state-check-interval

peer-stale-state-check-interval

  • 触发检验副本是否处于无主状态的时间间隔。
  • 默认值:5m
  • 最小值:> 2 * election-timeout

leader-transfer-max-log-lag

  • 尝试转移领导权时被转移者允许的最大日志缺失个数。
  • 默认值:128
  • 最小值:10

max-snapshot-file-raw-size 从 v6.1.0 版本开始引入

  • 当 snapshot 文件大于该配置项指定的大小时,snapshot 文件会被切割为多个文件。
  • 默认值:100MiB
  • 最小值:100MiB

snap-apply-batch-size

  • 当导入 snapshot 文件需要写数据时,内存写缓存的大小
  • 默认值:10MB
  • 最小值:0
  • 单位:MB

consistency-check-interval


警告

开启一致性检查对集群性能有影响,并且和 TiDB GC 操作不兼容,不建议在生产环境中使用。

  • 触发一致性检查的时间间隔,0 表示不启用。
  • 默认值:0s
  • 最小值:0

raft-store-max-leader-lease

  • region 主可信任期的最长时间。
  • 默认值:9s
  • 最小值:0

right-derive-when-split

  • 为 true 时,以最大分裂 key 为起点的 region 复用原 region 的 key;否则以原 region 起点 key 作为起点的 region 复用原 region 的 key。
  • 默认值:true

merge-max-log-gap

  • 进行 merge 时,允许的最大日志缺失个数。
  • 默认值:10
  • 最小值:> raft-log-gc-count-limit

merge-check-tick-interval

  • 触发 merge 完成检查的时间间隔。
  • 默认值:2s
  • 最小值:大于 0

use-delete-range

  • 开启 rocksdb delete_range 接口删除数据的开关。
  • 默认值:false

cleanup-import-sst-interval

  • 触发检查过期 SST 文件的时间间隔,0 表示不启用。
  • 默认值:10m
  • 最小值:0

local-read-batch-size

  • 一轮处理读请求的最大个数。
  • 默认值:1024
  • 最小值:大于 0

apply-max-batch-size

  • Raft 状态机由 BatchSystem 批量执行数据写入请求,该配置项指定每批可执行请求的最多 Raft 状态机个数。
  • 默认值:256
  • 最小值:大于 0
  • 最大值: 10240

apply-pool-size

  • Apply 线程池负责把数据落盘至磁盘。该配置项为 Apply 线程池中线程的数量,即 Apply 线程池的大小。调整 Apply 线程池的大小时,请参考 TiKV 线程池调优
  • 默认值:2
  • 可调整范围:[1, CPU * 10]

store-max-batch-size

  • Raft 状态机由 BatchSystem 批量执行把日志落盘至磁盘的请求,该配置项指定每批可执行请求的最多 Raft 状态机个数。
  • 如果开启 hibernate-regions,默认值为 256;如果关闭 hibernate-regions,默认值为 1024
  • 最小值:大于 0
  • 最大值: 10240

store-pool-size

  • 表示处理 Raft 的线程池中线程的数量,即 Raftstore 线程池的大小。调整该线程池的大小时,请参考 TiKV 线程池调优
  • 默认值:2
  • 可调整范围:[1, CPU * 10]

store-io-pool-size 从 v5.3.0 版本开始引入

  • 表示处理 Raft I/O 任务的线程池中线程的数量,即 StoreWriter 线程池的大小。调整该线程池的大小时,请参考 TiKV 线程池调优
  • 默认值:0
  • 最小值:0

future-poll-size

  • 驱动 future 的线程池中线程的数量。
  • 默认值:1
  • 最小值:大于 0

cmd-batch

  • 对请求进行攒批的控制开关,开启后可显著提升写入性能。
  • 默认值:true

inspect-interval

  • TiKV 每隔一段时间会检测 Raftstore 组件的延迟情况,该配置项设置检测的时间间隔。当检测的延迟超过该时间,该检测会被记为超时。
  • 根据超时的检测延迟的比例计算判断 TiKV 是否为慢节点。
  • 默认值:500ms
  • 最小值:1ms

raft-write-size-limit 从 v5.3.0 版本开始引入

  • 触发 Raft 数据写入的阈值。当数据大小超过该配置项值,数据会被写入磁盘。当 store-io-pool-size 的值为 0 时,该配置项不生效。
  • 默认值:1MB
  • 最小值:0

coprocessor

coprocessor 相关的配置项。

split-region-on-table

  • 开启按 table 分裂 Region 的开关,建议仅在 TiDB 模式下使用。
  • 默认值:false

batch-split-limit

  • 批量分裂 Region 的阈值,调大该值可加速分裂 Region。
  • 默认值:10
  • 最小值:1

region-max-size

  • Region 容量空间最大值,超过时系统分裂成多个 Region。
  • 默认值:region-split-size / 2 * 3
  • 单位:KiB|MiB|GiB

region-split-size

  • 分裂后新 Region 的大小,此值属于估算值。
  • 默认值:96MiB
  • 单位:KiB|MiB|GiB

region-max-keys

  • Region 最多允许的 key 的个数,超过时系统分裂成多个 Region。
  • 默认值:region-split-keys / 2 * 3

region-split-keys

  • 分裂后新 Region 的 key 的个数,此值属于估算值。
  • 默认值:960000

enable-region-bucket 从 v6.1.0 版本开始引入

  • 是否将 Region 划分为更小的区间 bucket,并且以 bucket 作为并发查询单位,以提高扫描数据的并发度。bucket 的详细设计可见 Dynamic size Region
  • 默认值:false


警告

  • enable-region-bucket 是 TiDB 在 v6.1.0 中引入的实验特性,不建议在生产环境中使用。
  • 这个参数仅在 region-split-size 调到两倍 region-bucket-size 及以上时才有意义,否则不会真正生成 bucket。
  • region-split-size 调大可能会有潜在的性能回退、数据调度缓慢的风险。

region-bucket-size 从 v6.1.0 版本开始引入

  • 设置 enable-region-bucket 启用时 bucket 的预期大小。
  • 默认值:96MiB


警告

region-bucket-size 是 TiDB 在 v6.1.0 中引入的实验特性,不建议在生产环境中使用。

report-region-buckets-tick-interval 从 v6.1.0 版本开始引入


警告

report-region-buckets-tick-interval 是 TiDB 在 v6.1.0 中引入的实验特性,不建议在生产环境中使用。

  • 启用 enable-region-bucket 后,该配置项设置 TiKV 向 PD 上报 bucket 信息的间隔时间。
  • 默认值:10s
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论