tikv 节点处理器打满

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:

【TiDB 版本】
5.7.25-TiDB-v4.0.8

【问题描述】
tikv 节点10 个,当前有一个处理器很高。
当前写入量2K,读取量 3K 左右。
总数据量 3.5T 。ssd 硬盘



若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

可以先排查下是不是热点问题:
https://docs.pingcap.com/zh/tidb/v4.0/troubleshoot-hot-spot-issues#tidb-热点问题处理

https://asktug.com/t/topic/1014

我感觉像是热点问题,但是修改SHARD_ROW_ID_BITS =6 后,依旧这样。表的主健用的是复合主健。走的应该是内置的rowid 。当前表中有20亿条记录。

是 update 操作还是 insert 操作?
修改 shard_row_id_bits 之后是对后续的插入数据会有效。
另外修改 shard_row_id_bits 之后可以 split table region 一下,因为 shard_row_id_bit 并不会去分裂 region ,所以当数据写入发时候,一开始还是写入在同一个 region 中,等待 region 分裂之后才能起到打散的作用。split table region 可以手动拆分 region:https://docs.pingcap.com/zh/tidb/v4.0/sql-statement-split-region#split-region-使用文档

insert 操作,我现在这个表有
SHOW TABLE XXX REGIONS 有48000个regin 。
这个表有20亿条记录, split table region 应该分成多少个算合适呢 ?

SPLIT TABLE t BETWEEN (-9223372036854775808) AND (9223372036854775807) REGIONS 16;  
between and 的区间从哪得到,还有regions 的个数,应该是多少算合适呢? 如何计算?

感谢

表结构是怎么样的?
写入的数据是怎么样的?是追加写入么?

六七个字段 ,用的复合主健。(三个字段拼一起的主健 ) 。每次都是单 条插入insert into values (1个)
当前每秒2K的写入。是不是因为我的region 数量太多了??

热点问题与 region 数量没有特别的关系

可以设置一下 shard_row_id_bits ,然后再压测看下,需要持续压测一段时间观察。

这个上周就改了 ,改成6了。没有效果。。。

导出一下 Overview/TiDB/PD/TiKV-Details 几个监控面板的监控数据看下:

https://metricstool.pingcap.com/