lightning卡在99%,一直不动

@peng-xin 使用 tidb backend 的话,应该盘不太会成为瓶颈。

从两次执行的日志里面看,执行到 99% 之后卡住是在等其中一个文件执行完成,对应如下条日志:

[2021/09/14 19:45:52.506 +08:00] [INFO] [restore.go:2626] ["restore file completed"] [table=`data_warehouse`.`t_info_submit_log_week`] [engineNumber=0] [fileIndex=25] [path=data_warehouse.t_info_submit_log.0000016580000.sql:0] [readDur=216.600324ms] [encodeDur=105.620479ms] [deliverDur=21.429286932s] [checksum="{cksum=0,size=175288782,kvs=103152}"] [takeTime=21.580014045s] []

在第一次启动之后,这个文件一直未跑完,直到第二次重启后,只用了 21s 就迅速跑完了,并且第二次启动时其他文件都是瞬间执行完(因为第一次已执行完成)。

麻烦确认一下 data_warehouse.t_info_submit_log.0000016580000.sql 这个文件的内容或大小是不是和其他源文件有明显的不同导致执行可能会卡住。

另外,如果方便重试的话,也可以重跑一下然后在卡住的时候抓一下当前的 go routing 具体操作如下:
在 tidb-lightning.toml 中添加如下配置:

[lightning]
status-addr = ":8289"

然后在 lightning 卡住的时候,访问如下地址:

http://127.0.0.1:8289/debug/pprof/goroutine?debug=2

看一下这个返回的结果,看看线程卡在哪里的话,基本就可以定位原因了

3 个赞