tidb-读热点造成的单kv负载高

一、现象

出现了一台tikv的cpu远远高于其他两台,其监控如下图所示
在这里插入图片描述

二、排查

1.阐述

单点tikv的负载高,很容易就能想到是热点的问题,接下来我们就验证这个问题

2.查看监控TiKV-Details/Thread CPU

unified read pool cpu
可以看到unified read pool的cpu其中一个tikv明显高于其他两个节点,所以这证明了其中的一个tikv发生了热点读的情况

3.定位热点表和索引

方法一、查看热力图

热力图能够帮我们定位出热点具体是哪张表,哪个索引,如下图所示,高亮部分便是热点部分
在这里插入图片描述

方法二、通过pd-ctl查看

region topread 20
region topwrite 20
# 或者
hot read
hot write

根据上面的region hotread的结果,将leader store id为负载高的store的region挑出来,然后通过下面的方式查看region对应的表和索引

# 方式一
select * from information_schema.TIKV_region_status where region_id in (123,456,789);

# 方式二、
curl http://{TiDBIP}:10080/regions/{RegionId}

三、解决问题

知道问题是读热点,且定位到了表就比较好解决了

1.慢查询

优化慢查询,如果不方便更改sql,可以采用执行计划绑定的方式

2.小表读热点

Load Base Split

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值