TiFlash 配置参数
可通过 调整参数。如果你使用 TiUP 部署,可以用 代替 pd-ctl -u <pd_ip:pd_port>
命令。
replica-schedule-limit
:用来控制 replica 相关 operator 的产生速度(涉及到下线、补副本的操作都与该参数有关)store-balance-rate
:用于限制每个 TiKV store 或 TiFlash store 的 Region 调度速度。注意这个参数只对新加入集群的 store 有效,如果想立刻生效请用下面的方式。:用来表示 TiKV 实例的拓扑关系,其中 key 的顺序代表了不同标签的层次关系。在 TiFlash 开启的情况下需要使用
pd-ctl config placement-rules
来设置默认值,详细可参考 。
TiFlash 配置参数
[server]
engine-addr = 外部访问 TiFlash coprocessor 服务的地址
[raftstore]
## 处理 Raft 数据落盘的线程池中线程的数量
## 处理 Raft 的线程池中线程的数量,即 Raftstore 线程池的大小。
store-pool-size = 4
snap-handle-pool-size = 2
## 控制 raft store 持久化 WAL 的最小间隔。通过适当增大延迟以减少 IOPS 占用,默认为 "4ms",设为 "0ms" 则关闭该优化。
store-batch-retry-recv-timeout = "4ms"
[security]
## 从 v5.0 引入,控制是否开启日志脱敏
## 若开启该选项,日志中的用户数据会以 `?` 代替显示
## 默认值为 false
redact-info-log = false
除以上几项外,其余功能参数和 TiKV 的配置相同。需要注意的是:key
为 engine
的 label
是保留项,不可手动配置。
TiFlash 支持单节点多盘部署。如果你的部署节点上有多块硬盘,可以通过以下的方式配置参数,提高节点的硬盘 I/O 利用率。TiUP 中参数配置格式参照详细 TiFlash 配置模版。
TiDB 集群版本低于 v4.0.9
TiDB v4.0.9 之前的版本中,TiFlash 只支持将存储引擎中的主要数据分布在多盘上。通过 path
(TiUP 中为 data_dir
)和 path_realtime_mode
这两个参数配置多盘部署。
如果节点上有多块相同规格的硬盘,可以把 path_realtime_mode
参数留空(或者把该值明确地设为 false
)。这表示数据会在所有的存储目录之间进行均衡。但由于最新的数据仍然只会被写入到第一个目录,因此该目录所在的硬盘会较其他硬盘繁忙。
如果节点上有多块规格不一致的硬盘,推荐把 path_relatime_mode
参数设置为 true
,并且把性能最好的硬盘目录放在 path
参数内的最前面。这表示第一个目录只会存放最新数据,较旧的数据会在其他目录之间进行均衡。注意此情况下,第一个目录规划的容量大小需要占总容量的约 10%。
TiDB 集群版本为 v4.0.9 及以上
TiDB v4.0.9 及之后的版本中,TiFlash 支持将存储引擎的主要数据和新数据都分布在多盘上。多盘部署时,推荐使用 [storage]
中的参数,以更好地利用节点的 I/O 性能。但 TiFlash 仍然支持 中的参数。
如果节点上有多块相同规格的硬盘,推荐把硬盘目录填到 storage.main.dir
列表中,storage.latest.dir
列表留空。TiFlash 会在所有存储目录之间分摊 I/O 压力以及进行数据均衡。
如果节点上有多块规格不同的硬盘,推荐把 I/O 性能较好的硬盘目录配置在 storage.latest.dir
中,把 I/O 性能较一般的硬盘目录配置在 storage.main.dir
中。例如节点上有一块 NVMe-SSD 硬盘加上两块 SATA-SSD 硬盘,你可以把 storage.latest.dir
设为 ["/nvme_ssd_a/data/tiflash"]
以及把 storage.main.dir
设为 ["/sata_ssd_b/data/tiflash", "/sata_ssd_c/data/tiflash"]
。TiFlash 会根据两个目录列表分别进行 I/O 压力分摊及数据均衡。需要注意此情况下,storage.latest.dir
中规划的容量大小需要占总规划容量的约 10%。