GC 配置
例如,如果需要将 GC 调整为保留最近一天以内的数据,只需执行下列语句即可:
- 控制是否启用 GC。
- 默认值:
true
tikv_gc_run_interval
- 指定 GC 运行时间间隔。Duration 类型,使用 Go 的 Duration 字符串格式,如
"1h30m"
, 等。 - 默认值:
"10m0s"
tikv_gc_life_time
- 每次 GC 时,保留数据的时限。Duration 类型。每次 GC 时将以当前时间减去该配置的值作为 safe point。
- 默认值:
"10m0s"
指定 GC 模式。可选值如下:
"central"
:集中 GC 模式。在此模式下, 阶段由 GC leader 向所有的 Region 发送 GC 请求。TiDB 2.1 及更早版本采用此 GC 模式。
tikv_gc_auto_concurrency
控制是否由 TiDB 自动决定 GC concurrency,即同时进行 GC 的线程数。
当 tikv_gc_mode
设为 "distributed"
,GC concurrency 将应用于 Resolve Locks 阶段。当 设为 "central"
时,GC concurrency 将应用于 Resolve Locks 以及 Do GC 两个阶段。
true
(默认):自动以 TiKV 节点的个数作为 GC concurrencyfalse
:使用 的值作为 GC 并发数
tikv_gc_concurrency
- 手动设置 GC concurrency。要使用该参数,必须将
tikv_gc_auto_concurrency
设为false
。 - 默认值:2
"legacy"
(默认):使用旧的扫描方式,即关闭 Green GC。"physical"
:使用物理扫描的方式,即开启 Green GC。
关于 GC 流程的说明
从 TiDB 3.0 版本起,由于对分布式 GC 模式和并行 Resolve Locks 的支持,部分配置选项的作用发生了变化。可根据下表理解不同版本中这些配置的区别:
表格内容说明:
- 串行:由 TiDB 逐个向 Region 发送请求。
- 并行:使用
tikv_gc_concurrency
选项所指定的线程数,并行地向每个 Region 发送请求。 - 分布式:无需 TiDB 通过对 TiKV 发送请求的方式来驱动,而是每台 TiKV 自行工作。
另外,如果 Green GC (实验特性)开启(即 配置项设为 "physical"
),Resolve Lock 的执行将不受上述并行配置的影响。