Hi 嘉贤, 这不太符合预期。请问任务中间有发生手动Cancel的情况吗?这种情况下,Flink的默认行为是RETAINED_ON_CANCELLATION,需要手动清理。 如果你希望在任务CANCEL之后将Checkpoint清理,可以考虑调整参数execution-checkpointing-externalized-checkpoint-retention[1].
[1] http://stream.devops.sit.xiaohongshu.com/docs/red/docs/deployment/config/#execution-checkpointing-externalized-checkpoint-retention Best, Yu Chen > 2023年11月8日 13:08,梁嘉贤 <lian...@sutpc.com> 写道: > > Hi, 我纠正一下我的问题,是taskmanager中checkpoints数量越来越多占用磁盘。同时,补充一下以下信息: > 我通过把task manager的checkpoint路径挂载到本地,采用du > -h命令查看checkpoint中的结果,发现任务中会持续增加chk,导致占用磁盘越来越大,如下图 > 我的疑问是,如何把这些历史chk文件删掉? > <2dfdf...@88d32a26.b2174b6500000000.png> > > > > > > 梁嘉贤 > 深圳市城市交通规划设计研究中心有限公司/数据模型中心 > > > > ------------------ Original ------------------ > From: "Yu Chen"<yuchen.e...@gmail.com>; > Date: Wed, Nov 8, 2023 12:59 PM > To: "梁嘉贤"<lian...@sutpc.com>; > Cc: "user"<user@flink.apache.org>; > Subject: Re: 配置了state.checkpoints.num-retained为1,但taskmanger > 中checkpoints数量越来越多,占用内存,如何解决? > > Hi 嘉贤, > > Flink Web上展示的Checkpoint的历史记录,state-checkpoints.num-retained参数会控制在Checkpoint > storage中存储的checkpoint数量,Flink会滚动删除Checkpoint > storage的checkpoint文件,但是这个过程中Flink > Web上记录是不会删除的(你可以在对应的Checkpoint记录的Path上的地址去确认)。 > 同时,如果你是Heap > StateBackend,那么状态是存储到内存里的,checkpoint是flush到文件的。之所以内存增大大概率是任务本身导致的,而非历史Checkpoint导致(例如全局窗口聚合且未设置State > TTL的场景),如果要定位内存上涨的原因还需要更多的作业信息。 > 另外,如果你希望确认参数是否生效,可以在JobManager的Configuration一栏查看。 > > Best, > Yu Chen > > > 2023年11月8日 11:56,梁嘉贤 <lian...@sutpc.com> 写道: > > > > 您好, > > 采用Flink 1.14 > > 版本,用docker分别建立了jobmanger和taskmanager两个容器,docker-compose.yml信息如下图1所示。 > > 在配置中,设置了state.checkpoints.num-retained : > > 1,但在web中看到checkpoint持续增多(下图2),在taskmanager容器中的checkpoint数量也持续增多,请问可以怎么清理这些历史checkpoint吗? > > > > <b2f07...@09951a67.eb064b6500000000.png><03b4c...@04cd7323.eb064b6500000000.png> >