为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【 TiDB 使用环境】v5.1.0
【概述】 场景 + 问题概述
随便一个sql都很慢,建个简单的test表,就两个字段,插入和读取都很慢
【应用框架及开发适配业务逻辑】
【背景】 做过哪些操作
【现象】 业务和数据库现象
【问题】 当前遇到的问题
【业务影响】
【TiDB 版本】 v5.1.0
【附件】 相关日志及监控(https://metricstool.pingcap.com/)
grafana看机器负载都很正常
tikv有下面的log:
若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。
1 个赞
林先森cC
(林先森cC)
3
你 发的 那个报错看着是有锁
- primary_lock:锁对应事务的 primary lock。
- lock_version:锁对应事务的 start_ts。
- key:表示被锁的 key。
- lock_ttl: 锁的 TTL。
- txn_size:锁所在事务在其 Region 的 key 数量,指导清锁方式。
通过关键字"prewrite encounters lock" 过滤预写阶段遇到的锁冲突的tableID:
grep “rewrite encounters lock” tidb.log |awk -F “tableID” ‘{print $2}’ | awk -F “,” ‘{print $1}’ | sort | uniq -c
通过关键字"Write conflict 过滤写冲突的tableID:
grep “Write conflict” tidb.log |awk -F “tableID” ‘{print $2}’ | awk -F “,” ‘{print $1}’ | sort | uniq -c
6 =49
1 =118
1 =23
1 =332
10 =49
6表示冲突次数,49表示tableID。
可以查出是哪个表有冲突
过滤出出现次数最多的 primary_lock
cat tikv.log |grep error-response | awk -F “primary_lock:” ‘{print $2}’ | awk -F " " ‘{print $1}’ | sort | uniq -c | sort -n
通过region key 命令找到 region
tiup ctl pd -u http://{pdip:port} -i
region key xxxxxxxxxx
可以 查出是具体哪个region 有锁冲突
然后 查看一下 region 元数据信息属于哪个表
SELECT * FROM INFORMATION_SCHEMA.TIKV_REGION_STATUS WHERE region_id=xx;
如果过滤出来锁不多的话不一定是你发的那个日志报错问题引起慢
1 个赞
锁很少,我这整个db都很慢,就见了test的表试了下,这会又都好了,看监控,负载什么的都不高,请问还要怎么排查?
1 个赞
h5n1
(H5n1)
5
1 个赞
h5n1
(H5n1)
7
普通的磁盘吗? 这上面有跑其他的没, tikv 的cpu是不是很不均衡
2 个赞
林先森cC
(林先森cC)
9
是不是有慢查啊把io打满了 或者 有热点的region 你这个集群qps怎么样 有高频读或者写入 的小表吗
dashboard看下热点情况还有 慢语句情况
1 个赞
h5n1
(H5n1)
10
看CPU频率像是GC,但利用率不高,插入和读取的慢SQL信息在dashboard或慢SQL日志找下
1 个赞
是有慢查询,但分析了下,都是命中了索引的,在其他环境查了很快,应该还是有台tikv io高导致的慢吧
1 个赞
确认了,是磁盘问题,切换了,现在没问题了,谢谢大家!
3 个赞
system
(system)
关闭
15
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。