更新时间:2025-06-20 GMT+08:00

ClickHouse加速TTL操作调优

ClickHouse触发TTL的时候,对CPU和内存会存在较大消耗和占用。

登录FusionInsight Manager界面,选择“集群 > ClickHouse > 配置 > 全部配置 > ClickHouseServer > 自定义 > clickhouse-config-customize”,添加如下配置,保存配置,重启服务。

配置项

参数说明

参考值

merge_tree.max_replicated_merges_with_ttl_in_queue

在ReplicatedMergeTree队列中允许同时使用TTL合并部件的任务数。

设置为0表示自适应设置为CPU核数的四分之一。

CPU核数一半

merge_tree.max_number_of_merges_with_ttl_in_pool

在ReplicatedMergeTree队列中允许TTL合并部件的线程池。

当池中包含TTL数据的合并任务数量已经超过设置值时,不再为TTL数据分配新的合并任务。这是为了留出空闲的线程处理常规的合并任务,避免出现“Too many parts”的错误。

设置为0表示自适应设置为CPU核数的一半。

CPU核数

  • 当集群写入压力较大,不建议修改此配置。需要给常规Merge留出空闲线程,避免“Too manyparts parts”。
  • 对于已存在的大表(数据量超亿级别),不要使用修改或新设置TTL的方式来实现数据老化能力,推荐使用定时任务“alter table table_name on cluster default_cluster drop partition partition_name”来实现。