arm架构下搭建的 v8.5.2 版本tidb 使用过程中总有一台tikv的cpu过高 是怎么回事?
先确认下是否是热点
若这台 TiKV 节点承载了大量热点 Region(比如高频读写的业务表分区、系统表 Region),会导致其 CPU 持续高负载。ARM 架构下的调度策略若未适配,可能加剧 Region 分布失衡。
调度策略如何进行适配?
1.leader分布不均匀
2.热点问题导致
可能是负载不均,就是该 TiKV 节点承担了过多数据 、请求
还有可能是TiKV 配置不合理, 比如线程池配置过载、RocksDB 优化缺失
系统或者硬件层面也可能有问题,比如内核版本兼容性
是不是混合部署了,还是性能不够,感觉是热点访问或者内部协调任务跑不动
我有时间都觉得,要跳出现有的tidb的监控框架和手段,尝试用监控并分析对应时间段操作系统运行情况。 苦于当前也没有好的方式
几台 tikv 的资源配置是不是一致的。
存不存在混部?比如和 tidb 混合部署 或者和 tiflash ticdc 等混合部署?
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
截图这一页看看
热点数据集中、RocksDB 后台操作过载、集群调度失衡
先排查这 3 点:
- 用 Dashboard 看该节点是否集中大量热点 Region/Leader;
- 检查节点是否混部其他组件;
- 调整 PD 调度策略(如开启 Leader 均衡),适配 ARM 架构的资源分配。
看看消耗资源的都是啥组件
1.leader分布不均匀
2.热点问题导致
是不是有热点计算业务在这个kv上
TiDB 磁盘 I/O 过高的处理办法 看下有么有参考
重启负载高的一台,热点就到另一台了,所以应该是Leader分布的问题。尝试看dashboard中的流量可视化找到热点表,再通过 # show table xx regions; 查看 region分布
关于这个问题,关于TiDB的热点问题,我建议查看官方文档,这样可以更好地定位问题。 欢迎继续交流讨论。
