drop table删表后磁盘空间未回收

由于磁盘空间将满,用drop table删除了3张表,按照文档中应该是gc时间到了会回收磁盘空间,但是1天了还没有回收,请问可能是什么样的原因,怎么解决?
集群版本是4.0.9,修改了tikv_gc_life_time和tikv_gc_run_interval为1个小时

我看了社区里其他类似问题,也没发现什么解决办法,希望能给点建议,谢谢

麻烦执行下:select VARIABLE_NAME, VARIABLE_VALUE from mysql.tidb where VARIABLE_NAME like “tikv_gc%”;

看下 GC 相关配置

另外可以看下 GC 相关的监控以及日志,看下 GC 是否是正常运行的。


这是gc的相关配置,看监控gc是正常的
问下说的gc日志是在什么位置

gc 日志可以在 tidb.log 和 tikv.log 中 grep -i gc_worker 关键字看下
TiKV-Details -> GC 和 TiDB -> GC 相关监控内容截下图看下

这是昨天的tivk监控的gc截图:

image
这是昨天的tidb监控的gc截图:
昨天的gc日志也是正常的

9 号的 GC 日志有吗?调整 GC 配置是什么时候调整的?具体时间点

这是9号的日志,大概是1月21号修改的gc配置,3台机器只有1台有3月份的gc日志,其余2台只有1月和2月的这种情况正常么


有 gc 日志的是 gc leader 这个节点么?

有,刚才发的昨天和今天的日志截图里就是这个leader

那抓一下这个节点的 goroutine 信息看:curl http://127.0.0.1:10080/debug/pprof/goroutine?debug=2 -o goroutine.pprof

怀疑 GC 有卡住的可能。另外这个集群方便重启一下吗?看下重启之后空间释放情况

image image image
gc这种没问题吧,重启等会尝试下吧

我刚又drop了个表,这是刚打印出来的日志,磁盘空间还是没有释放

我重启了集群,空间也没有释放,是要等下一次gc再看么

麻烦用 pd-ctl 执行下 service-gc-safepoint 命令看下输出结果,看到日志中有 safepoint 被 block 的日志

image 这是结果

那看起来 GC 都是正常的,你 drop 的表是很大的表吗?
集群是否有持续的别的表的写入量?drop 之后是观察 tikv 的 db 目录查看空间占用的吗?会不会是别的空间同时在增长,比如日志之类的,导致看起来磁盘空间未回收

总共在24G左右,集群是有持续写入,但是写入量小于drop的量

drop 之后是观察 tikv 的 db 目录查看空间占用的吗?

是不是有啥cdc任务停了,导致safepoint不能往前推进
image