📣

TiDB Cloud Serverless 现已更名为
Starter
!此页面由 AI 自动翻译,英文原文请见
此处。

垃圾回收配置

你可以使用以下系统变量来配置垃圾回收(GC):

关于如何修改系统变量的值的更多信息,请参见 System variables

GC I/O 限制

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

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 区域发送请求以触发垃圾回收。

关于之前版本的变更信息,请使用左侧菜单中的 TIDB 版本选择器 查看早期版本的文档。

TiDB 6.1.0 版本的变化

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

在 TiDB v6.1.0 中,新增了系统变量 tidb_gc_max_wait_time,用以控制活跃事务阻塞 GC 安全点的最大时间。超过该值后,GC 安全点会被强制前移。

GC in Compaction Filter

基于 DISTRIBUTED GC 模式,Compaction Filter 中的 GC 机制采用 RocksDB 的压缩过程,而不是单独的 GC 工作线程,来执行 GC。这一新机制有助于避免因 GC 导致的额外磁盘读取。同时,在清理过时数据后,也能避免大量残留的 tombstone 标记,从而提升顺序扫描性能。

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

[gc] enable-compaction-filter = true

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

show config where type = 'tikv' and name like '%enable-compaction-filter%';
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 | 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 | +------+-------------------+-----------------------------+-------+

文档内容是否有帮助?