# [FAQ] 如何理解 TiKV 关闭 Compaction filter 以后 GC worker cpu 为 0

## Key Words

TiKV, Compaction Filter, GC worker CPU

## Description

开始发现 GC 可能没有正常工作，尝试启停 Compaction Filter 以后，gc worker CPU 变成 0 。然后将 Compaction Filter  启动以后，依然没有恢复。最后手动执行了 Compaction 部分节点以后，gc 正常跑起来。可能的原因是什么？

## Content

1. 当 compaction-filter 被关闭时，gc-worker 是否工作主要依赖于 TiDB GC owner 发起，如果 TiDB 正好没有发起过 GC, 或者 TiKV 在收到 GC 请求后，根据当前 region 的情况觉得不那么需要 GC，  那么这段时间 gc-worker 的 CPU 就会很低。

2. 当 compaction-filter 被打开时，gc-worker 随着 RocksDB Compaction 的进行而出现。

当 RocksDB 的 Compaction 发起时 -> 在 Compaction Filter 中做 GC -> 遇到无法判断是否可以删除的 MVCC delete 记录 -> 发起 GcKeys task 到 gc worker -> gc worker cpu 被占用
综上，这种现象是可能存在的。

## Affected Versions

N/A
