tidb 监控 tikv pending task 中的cleanup-worker 一直居高不下

集群的IO和负载均衡是否有问题,可以检查一下。

集群目前看其他指标都挺正常的,使用起来也没发现什么问题,但就是这个pending变得越来越多

GC 延迟高不高,这个延迟高的话也会导致 cleanup-worker 堆积待处理任务;
另外看看日志里,有没有cleanup-worker 相关的错误或警告信息

gc看起来挺正常的,也没多少任务,


日志里拿cleanup关键字搜索不到任何信息

cleanup-worker是负责清理过期数据的后台线程,如果这个指标一直居高不下,可能意味着有大量的过期数据需要清理,或者清理工作遇到了瓶颈。
以下是一些降低cleanup-worker负载的参数和方法:
1、调整GC配置:增加gc-worker-count参数的值来增加GC工作线程的数量,或者调整gc-ttl参数来减少需要清理的数据量。
2、调整scheduler-worker-pool-size:如果scheduler-worker-pool-size设置得过低,可能会导致写入操作积压,从而增加cleanup-worker的负担。适当增加这个参数的值可以提高写入处理能力。
3、手动Compaction:如果自动GC工作不足以及时清理数据,可以考虑使用tikv-ctl工具进行手动Compaction,强制 RocksDB 进行Compaction,从而清理过期数据。
4、监控TiKV的GC相关指标,如gc_keys_duration和gc_tasks_duration,以及RocksDB的Compaction相关指标,如rocksdb_compaction_duration。

在TiKV中,cleanup-worker 是负责清理过期数据和无用数据的组件。如果监控到cleanup-workerpending tasks 数量持续居高不下,这通常意味着有大量的清理任务等待执行。 可以对TiKV 集群进行手动 compaction:tikv-ctl --pd 127.0.0.1:2379 compact-cluster -b -c default,lock,write。要在业务低峰期操作