📣
TiDB Cloud Essential 开放公测中。此页面由 AI 自动翻译,英文原文请见此处。

垃圾回收配置

你可以通过以下系统变量配置垃圾回收(GC):

关于如何修改系统变量的值,详见 系统变量

GC I/O 限制

TiKV 支持 GC I/O 限制。你可以通过配置 gc.max-write-bytes-per-sec 来限制每秒 GC worker 的写入量,从而减少对正常请求的影响。

0 表示禁用此功能。

你可以使用 tikv-ctl 动态修改该配置:

tikv-ctl --host=ip:port modify-tikv-config -n gc.max-write-bytes-per-sec -v 10MB

TiDB 5.0 的变更

在 TiDB 早期版本中,垃圾回收通过 mysql.tidb 系统表进行配置。虽然对该表的修改仍然受支持,但推荐使用提供的系统变量进行配置。这样可以确保配置变更能够被校验,并防止出现意外行为(#20655)。

CENTRAL 垃圾回收模式已不再支持。将自动使用 DISTRIBUTED GC 模式(自 TiDB 3.0 起为默认模式)。该模式更高效,因为 TiDB 不再需要向每个 TiKV region 发送请求来触发垃圾回收。

关于早期版本的变更信息,请通过左侧菜单的 TIDB 版本选择器 查看本文件的历史版本。

TiDB 6.1.0 的变更

在 TiDB v6.1.0 之前,TiDB 中的事务不会影响 GC safe point。从 v6.1.0 开始,TiDB 在计算 GC safe point 时会考虑事务的 startTS,以解决待访问数据已被清理的问题。如果事务持续时间过长,safe point 会被长时间阻塞,影响应用性能。

在 TiDB v6.1.0 中,引入了系统变量 tidb_gc_max_wait_time 用于控制活跃事务阻塞 GC safe point 的最长时间。超过该值后,GC safe point 会被强制推进。

Compaction Filter 中的 GC

基于 DISTRIBUTED GC 模式,Compaction Filter 中的 GC 机制利用 RocksDB 的 compaction 过程,而不是单独的 GC worker 线程来执行 GC。该新 GC 机制有助于避免 GC 带来的额外磁盘读取。同时,在清理过期数据后,能够避免大量残留的 tombstone 标记,从而提升顺序扫描性能。

以下示例展示了如何在 TiKV 配置文件中启用该机制:

[gc] enable-compaction-filter = true

你也可以通过动态修改配置来启用该 GC 机制。示例如下:

show config where type = 'tikv' and name like '%enable-compaction-filter%';
+------+-------------------+-----------------------------+-------+ | Type | Instance | Name | Value | +------+-------------------+-----------------------------+-------+ | tikv | 172.16.5.37:20163 | gc.enable-compaction-filter | false | | tikv | 172.16.5.36:20163 | gc.enable-compaction-filter | false | | tikv | 172.16.5.35:20163 | gc.enable-compaction-filter | false | +------+-------------------+-----------------------------+-------+
set config tikv gc.enable-compaction-filter = true; show config where type = 'tikv' and name like '%enable-compaction-filter%';
+------+-------------------+-----------------------------+-------+ | Type | Instance | Name | Value | +------+-------------------+-----------------------------+-------+ | tikv | 172.16.5.37:20163 | gc.enable-compaction-filter | true | | tikv | 172.16.5.36:20163 | gc.enable-compaction-filter | true | | tikv | 172.16.5.35:20163 | gc.enable-compaction-filter | true | +------+-------------------+-----------------------------+-------+

文档内容是否有帮助?