tikv v2.0.2 在业务高峰时panic挂了

生产环境,3节点tikv, 在业务高峰期时直接panic了,这是什么原因?如何能解决这个问题?
版本是旧的2.0.2



低版本确实有这个问题,在业务高峰期 scheduler channel 满了之后就会 panic。建议调大 channel size,默认是 10240,可以尝试调大 2-3 倍。

[storage]
scheduler-notify-capacity = 10240

如果可能的话,可以考虑升级,升级到 2.1 版本之上就没有这个问题了

因为是生产的环境,目前没想去大的调整升级版本,那么这个参数如何调整?可以直接在线调整而不用重启服务么?

可以在 tidb-ansible/conf/tikv.yml 中添加此参数,并通过 ansible-playbook rolling_update.yml --tags tikv 去滚动更新 tikv 配置。此操作也是建议在业务低峰期进行操作,tikv rolling update 之前会对 leader 进行 transfer,会对业务有一些影响。

当时用2.0.2是直接运行binary布署的,没有用tidb-ansible,那么binary直接命令运行这种的话要如何调整?直接增加到运行tikv命令行参数中重启么?具体如何?
目前用的启动命令行是:
nohup ${CURDIR}/bin/tikv-server --pd=${PD}
–addr="${IP}:20160"
–data-dir="${IP}"
–log-file=tikv.log 1>/dev/null 2>>${CURDIR}/tikv.err &

可以将配置添加到 tikv 的 toml 文件中在 -C, --config 指定即可

tikv 的 toml 文件是目录下的last_tikv.toml 么?是否可以直接改这个就可以? 然后-C, --config ${CURDIR}/bin/last_tikv.toml

由于是 binary 不是,所以不确定这边启动时的 toml 是哪个,可以使用 ps -ef|grep tikv-server 看下是否有显示


或者在 tikv 的 log 中 search welcome ,在之后的几行会输出 tikv 的 conf 信息,看是否有记录

ps中是没有显示–config


welcome之后只有各种具体的参数,但没有search到 cfg-path

确定找不到 conf 的位置吗,using config 不会太多,辛苦一行行看下是否有遗漏呢。

vi 的/ 查找,应该是没有漏的

我的截图提供的是 4.x 的日志格式 ,2.x 比较老了,所以请看下是否有不一样的地方。这个也确认了吗。建议肉眼看下吧,如果还是没有我们反馈下,或者给下 tikv log 我们看下

启动后welcome后的日志中vi下也试着查了一下“toml”,也没有

你上传一下 log 吧。后面建议升级一下,2.x 版本社区逐渐不提供维护了,

tikv.log (12.5 KB)

启动的时候没有指定 --config 的话使用的就是默认的配置。
可以先手动增加配置文件 tikv.toml 复制以下内容

config-template.toml (16.6 KB)

在 storage 那一栏中找到 scheduler-notify-capacity 去掉前面的 # ,调整改值为默认值的 2-3 倍。

重启的时候要指定该配置,如 --config conf/tikv.toml

生产环境传文件比较麻烦,#的那些都可以去掉的吧?这么看如果我直接新建一个文件tikv.toml,里面只写
[storage]
scheduler-notify-capacity = 30720

也是一样的吧?再–config conf/tikv.toml

保证特殊配置都存在 toml 文件中即可,请仔细核对,否则将会使用默认值

是的,一样的。

好的,谢谢