TiFlash 配置参数
可通过 调整参数。如果你使用 TiUP 部署,可以用 代替 pd-ctl -u <pd_ip:pd_port>
命令。
replica-schedule-limit:用来控制 replica 相关 operator 的产生速度(涉及到下线、补副本的操作都与该参数有关)
注意
不要超过
region-schedule-limit
,否则会影响正常 TiKV 之间的 Region 调度。store-balance-rate
:用于限制每个 TiKV store 或 TiFlash store 的 Region 调度速度。注意这个参数只对新加入集群的 store 有效,如果想立刻生效请用下面的方式。4.0.2 版本之后(包括 4.0.2 版本)废弃了
store-balance-rate
参数且store limit
命令有部分变化。该命令变化的细节请参考 。- 使用
pd-ctl -u <pd_ip:pd_port> store limit <store_id> <value>
命令单独设置某个 store 的 Region 调度速度。(store_id
可通过pd-ctl -u <pd_ip:pd_port> store
命令获得)如果没有单独设置,则继承store-balance-rate
的设置。你也可以使用pd-ctl -u <pd_ip:pd_port> store limit
命令查看当前设置值。
- 使用
- replication.location-labels:用来表示 TiKV 实例的拓扑关系,其中 key 的顺序代表了不同标签的层次关系。在 TiFlash 开启的情况下需要使用 来设置默认值,详细可参考 geo-distributed-deployment-topology。
TiFlash 配置参数
小贴士
如果你需要调整配置项的值,请参考修改配置参数进行操作。
[server]
engine-addr = 外部访问 TiFlash coprocessor 服务的地址
[raftstore]
## 处理 Raft 数据落盘的线程池中线程的数量
apply-pool-size = 4
## 处理 Raft 的线程池中线程的数量,即 Raftstore 线程池的大小。
store-pool-size = 4
## 控制处理 snapshot 的线程数,默认为 2。设为 0 则关闭多线程优化
snap-handle-pool-size = 2
## 控制 raft store 持久化 WAL 的最小间隔。通过适当增大延迟以减少 IOPS 占用,默认为 "4ms",设为 "0ms" 则关闭该优化。
[security]
## 从 v5.0 引入,控制是否开启日志脱敏
## 若开启该选项,日志中的用户数据会以 `?` 代替显示
## 默认值为 false
[security.encryption]
## 数据文件的加密方法。
## 可选值为 "aes128-ctr"、"aes192-ctr"、"aes256-ctr"、"sm4-ctr" (仅 v6.4.0 及之后版本) 和 "plaintext"。
## 默认值为 "plaintext",即默认不开启加密功能。选择 "plaintext" 以外的值则表示启用加密功能。此时必须指定主密钥。
data-encryption-method = "aes128-ctr"
## 轮换密钥的频率,默认值:`7d`。
data-key-rotation-period = "168h" # 7 days
[security.encryption.master-key]
## 指定启用加密时的主密钥。若要了解如何配置主密钥,可以参考《静态加密 - 配置加密》:https://docs.pingcap.com/zh/tidb/dev/encryption-at-rest#配置加密
[security.encryption.previous-master-key]
## 指定轮换新主密钥时的旧主密钥。旧主密钥的配置格式与主密钥相同。若要了解如何配置主密钥,可以参考《静态加密 - 配置加密》:https://docs.pingcap.com/zh/tidb/dev/encryption-at-rest#配置加密
除以上几项外,其余功能参数和 TiKV 的配置相同。需要注意的是:key
为 的 label
是保留项,不可手动配置。
TiFlash 支持单节点多盘部署。如果你的部署节点上有多块硬盘,可以通过以下的方式配置参数,提高节点的硬盘 I/O 利用率。TiUP 中参数配置格式参照详细 TiFlash 配置模版。
TiDB 集群版本低于 v4.0.9
多个数据存储目录在 path
中以英文逗号分隔,比如 /nvme_ssd_a/data/tiflash,/sata_ssd_b/data/tiflash,/sata_ssd_c/data/tiflash
。如果你的节点上有多块硬盘,推荐把性能最好的硬盘目录放在最前面,以更好地利用节点性能。
如果节点上有多块相同规格的硬盘,可以把 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%。
参数从 TiUP v1.2.5 版本开始支持。如果你的 TiDB 版本为 v4.0.9 及以上,请确保你的 TiUP 版本不低于 v1.2.5,否则 [storage]
中定义的数据目录不会被 TiUP 纳入管理。