tispark gc 无法正常工作

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】

  • 集群信息
    tidb 版本 v5.1.4
    tispark 版本 v3.2.2 ,是从 2.5 升级过来的

  • 遇到问题
    集群 update 性能较差,经过分析排查,是 gc 没正常工作,下面是 gc 信息
    tikv_gc_last_run_time | 20231211-15:35:17 +0800
    tikv_gc_safe_point | 20231109-15:34:12 +0800

下面是 pd-ctl 查看到的信息
» service-gc-safepoint
{
“service_gc_safe_points”: [
{
“service_id”: “gc_worker”,
“expired_at”: 9223372036854775807,
“safe_point”: 446241575371538432
},
{
“service_id”: “ticdc”,
“expired_at”: 1702363646,
“safe_point”: 446236079548530688
},
{
“service_id”: “tispark_161d033e-79ed-4d86-920e-2421541cbcee”,
“expired_at”: 1702277526,
“safe_point”: 445841422866710913
},
{
“service_id”: “tispark_31b3b228-3e1c-4719-b103-8313a8d54ed6”,
“expired_at”: 1702277538,
“safe_point”: 445786124389712129
},
{
“service_id”: “tispark_36ce4519-3041-4d11-a23f-db53a6f484eb”,
“expired_at”: 1702277568,
“safe_point”: 445991471693693035
},
{
“service_id”: “tispark_4c225448-330f-448f-bd32-9a858963888c”,
“expired_at”: 1702277584,
“safe_point”: 445518167438000131
},
{
“service_id”: “tispark_af3b67b4-8e0c-42b2-8d0f-86bd77091e6a”,
“expired_at”: 1702277569,
“safe_point”: 445991471995158529
},
{
“service_id”: “tispark_c42ced32-87be-4ac5-b035-9c75fd8e1e3e”,
“expired_at”: 1702277571,
“safe_point”: 445991472873340930
},
{
“service_id”: “tispark_cbe81364-7e10-402c-b41d-709469892090”,
“expired_at”: 1702277571,
“safe_point”: 445518384558768521
},
{
“service_id”: “tispark_f58f0569-6e9b-41b6-93f8-c311ee179142”,
“expired_at”: 1702277564,
“safe_point”: 445536642717974864
},
{
“service_id”: “tispark_fdd4b490-6675-4168-b812-7c25b79d6858”,
“expired_at”: 1702277580,
“safe_point”: 445517726367612929
}
],
“gc_safe_point”: 445517726367612929
}

下面是对上面信息做的时间戳转换
tso 446241575371538432 # 2023-12-11 14:35:17.378 +0800 +08
tso 446236079548530688 # 2023-12-11 08:45:52.477 +0800 +08
tso 445991471693693035 # 2023-11-30 13:34:07.562 +0800 +08
tso 445991471995158529 # 2023-11-30 13:34:08.712 +0800 +08
tso 445991472873340930 # 2023-11-30 13:34:12.062 +0800 +08
tso 445841422866710913 # 2023-11-23 22:34:16.712 +0800 +08
tso 445786124389712129 # 2023-11-21 11:58:29.763 +0800 +08
tso 445536642717974864 # 2023-11-10 11:36:52.712 +0800 +08
tso 445517726367612929 # 2023-11-09 15:34:12.562 +0800 +08
tso 445518167438000131 # 2023-11-09 16:02:15.112 +0800 +08
tso 445518384558768521 # 2023-11-09 16:16:03.362 +0800 +08

下面是部分 tidb 日志
[2023/12/11 15:56:18.370 +08:00] [INFO] [gc_worker.go:292] [“[gc worker] there’s already a gc job running, skipped”] [“leaderTick on”=630cd6166400013]
[2023/12/11 15:57:17.373 +08:00] [INFO] [gc_worker.go:292] [“[gc worker] there’s already a gc job running, skipped”] [“leaderTick on”=630cd6166400013]
[2023/12/11 15:58:17.424 +08:00] [INFO] [gc_worker.go:292] [“[gc worker] there’s already a gc job running, skipped”] [“leaderTick on”=630cd6166400013]
[2023/12/11 15:59:17.662 +08:00] [INFO] [gc_worker.go:292] [“[gc worker] there’s already a gc job running, skipped”] [“leaderTick on”=630cd6166400013]
[2023/12/11 16:00:17.450 +08:00] [INFO] [gc_worker.go:292] [“[gc worker] there’s already a gc job running, skipped”] [“leaderTick on”=630cd6166400013]
[2023/12/11 16:00:18.957 +08:00] [INFO] [gc_worker.go:1046] [“[gc worker] finish resolve locks”] [uuid=630cd6166400013] [safePoint=445517726367612929] [regions=1450275]

以下是几个问题,请帮忙看下,谢谢

  1. 如何根据 pd-ctl 输出的 service_id 查看对应的 changefeed-id ?知道信息后方便删除任务
  2. tispark 任务如何删除?貌似没办法删除,这个问题 asktug 上也有类似问题,一直没得到解决,希望帮忙看下,也可以帮助遇到类似问题的其他人
  3. 为什么 gc 默认保留 24 小时,但是一个月前的还没正常 gc ,下面是官方文档说明
    https://docs.pingcap.com/zh/tidb/stable/ticdc-faq#ticdc-的-gc-ttl-是什么
    以上第二种行为是在 TiCDC v4.0.13 版本及之后版本中新增的。目的是为了防止 TiCDC 中某个同步任务停滞时间过长,导致上游 TiKV 集群的 GC safepoint 长时间不推进,保留的旧数据版本过多,进而影响上游集群性能。
    专栏 - TiSpark v3.0.3 & v3.1.3 发布 | TiDB 社区

通过[gc worker] there’s already a gc job running,,应该可以断定GC不是没有运行,而是一直在运行,没有结束,可能有大的更改造成GC一直没有完成

tispark 卡 gc safe point 的问题,看看这个帖子对你有没有帮助

你好,你发的这个帖子我仔细看了,但是帖子没有给出解决办法,即
我们使用的是 tispark jar 包,在 spark 任务里带上的。这种情况下如何删除 tispark 任务?
是否可以通过 pd-ctl 删除或者其他什么办法删除?多谢
cdc 任务知道如何删除,官方也有明确文档说明
但是 tispark 任务,官方文档没有说明。

  • pd-ctl 在 5.1.4 的版本里没有支持删除
    image

  • tispark 的 service_id 是随机的,通过这个 service_id 追溯不到任何信息

  • 希望指点下如何删除 tispark 任务,让 tikv_gc_safe_point 正常推进,谢谢

@neilshen tispark 是否也有类似下面 cdc 的命令可以使用?

tiup cdc:v5.1.0 cli --pd=<PD_ADDRESS> unsafe reset

tispark只是一个连接tikv和spark 集群的一个连接器薄层,你提交的任务应该是在spark 侧提交实现的,所以任务管理的操作也是在客户端进行查找和删除。

你们是用的yarn管理spark集群任务吗,如果是可以到yarn master 节点或者页面管理平台找到对应的任务id ,然后再执行类似yarn kill application-id 的命令执行删除任务。使用spark-submit 提交的任务也是类似的操作过程。

unsafe reset 好想就是cdc开始的

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。