[问题澄清]
当集群中存在大量 region 时,你会观察到 raft store cpu 消耗很高,通常超过默认值*80% 就已经很高了
在 2.0 版本的默认配置中,raft store cpu 上限为 100%
在 3.0 版本的默认配置中,raft store cpu 上限为 200%
这时的解决方案可以是开启 静默region,会迅速降低大量的 raft store cpu 消耗
[注意事项]
- 需要在 3.0 以后的版本中开启
- 需要滚动重启 TiKV ,请在业务低峰期操作
[参数说明]
raftstore.hibernate-regions
( 实验特性 )
- 打开或关闭静默 Region。打开后,如果 Region 长时间处于非活跃状态,即被自动设置为静默状态。静默状态的 Region 可以降低 Leader 和 Follower 之间心跳信息的系统开销。可以通过
raftstore.peer-stale-state-check-interval
调整 Leader 和 Follower 之间的心跳间隔。 - 默认值:false
https://github.com/tikv/tikv/blob/master/docs/reference/configuration/raftstore-config.md
[操作步骤]
(1)使用 ansible 开启静默 region 步骤:
- 在中控机安装目录 <deploy_dir>/conf 找到 tikv.yml 文件,vi 编辑文件,找到 raftstore
- 注意对齐格式在下方添加参数 hibernate-regions: true,注意: 和 ture 有空格,以及对齐
- 添加参数后,需要重启 tikv 生效,在中控机目录下滚动重启 tikv
su - tidb
cd <deploy_dir>/tidb-ansible
ansible-playbook rolling_update.yml -t tikv
(2)使用 Tiup 安装步骤
- 在中控机执行 tiup cluster eidt-config <cluster_name>, 例如
- 在 server_configs 下增加参数 raftstore.hibernate-regions: true
- 确认更改, 输入 y ,
- 根据提示执行 tiup cluster reload <cluter_name> -R tikv,例如