公司之前使用的是tidb 2.1.0-rc5,因为版本较低,GA版本已发布,已到2.1.4,并且准备使用最新的tidb-binlog方式来存放增量,所以将OLAP的tidb集群升级到2.1.4版本。
升级过程按照官方标准流程文档进行,注意一定下载最新的tidb-ansible,升级无异常,升级完成后测试一般使用无异常。
两三天后,BI同事反映查询经常出现连接中断情况,检查为tidb服务经常出现oom导致,发现为统计脚本导致,但是和业务确认升级前无异常,业务逻辑临时无法解决,故升级2.1.5版本。
升级2.1.5版本问题更加严重,ETL的写操作也受到影响,写入速度非常慢,大量TIME_COP_PROCESS报错,延迟等待数据移动(这也与IDC机房网络带宽受限有关)。
首先调整tidb服务内存占用超限限制,超过32GB后kill语句,但还是不行,然后修改pd配置(合并region),还是一样问题。
pd-ctl -u http://127.0.0.1:2379 config set max-merge-region-size 20 config set max-merge-region-keys 200000
最后修改tikv.yml的raftstore配置(我理解为raft的数据和日志刷新机制)才得以解决
[raftstore] raft-base-tick-interval: "2s" raft-log-gc-tick-interval: "60s"
但实际还是与业务使用tidb方式有关,经常用tidb全量进行数据统计计算,建议使用tispark