TIKV内存占比很高,TIKV无法启动,SQL查询失败

经过这几天的排查和分析,也特别感谢tidb社群的朋友帮助,我把解决的过程记录下。

首先内存占比很高的问题,我们设置了内存参数就好了,内存占比就不会太高。
可以参考这个帖子:【线上运维之06】TIDB在线更改TIKV内存占比,解决频繁OOM问题 - 能胜的个人页面 - OSCHINA - 中文开源技术交流社区

tikv无法启动是因为顺坏了文件,有两种处理办法,一种是下线节点后重新添加,但是非常耗时,我们用的是这个方法,帖子的链接社群文档自行搜索下。

但是另外一种办法是找到损坏的文件并修复,通过 TiKV Control工具,打印损坏的 SST 文件信息,然后在通过修复工具修复或者忽略启动,我们没有尝试,所以具体操作顺序社群文档搜索。

[TiKV Control 使用说明]
(https://docs.pingcap.com/zh/tidb/dev/tikv-control#强制-region-从多副本失败状态恢复服务弃用)

问题3,sql查询失败,是因为我们一个用with写的sql的子查询不走索引,经过我们的排查,在自查询的 tabel 后面增加一行代码。FROM table_name FORCE INDEX (‘索引名’),查询速度就恢复正常了,后来我们做了表分析,ANALYZE TABLE table_nam 发现不加强制索引也正常了。

最后查询速度也和tikv内部有没有错误有关,比如数据分布是否均匀等,性能都会有所提升。

2 个赞