文档首页/ MapReduce服务 MRS/ 用户指南/ MRS集群运维/ MRS集群告警处理参考/ ALM-45457 ClickHouse的副本队列中存在任务堆积
更新时间:2025-12-11 GMT+08:00
分享

ALM-45457 ClickHouse的副本队列中存在任务堆积

本章节仅适用于MRS 3.6.0-LTS及之后版本。

告警解释

告警模块按30秒周期检测ClickHouse服务replication_queue任务队列中的任务数,当检测到任务数超过阈值(50,000),系统产生此告警。

当系统检测到任务数低于阈值,告警恢复。

告警属性

告警ID

告警级别

告警类型

业务类型

是否可自动清除

45457

紧急(默认阈值为100,000)

重要(默认阈值为50,000)

业务质量告警

ClickHouse

告警参数

类别

参数名称

参数含义

定位信息

来源

产生告警的集群或系统名称。

服务名

产生告警的服务名称。

角色名

产生告警的角色名称。

主机名

产生告警的主机名。

对系统的影响

当ClickHouse服务出现副本队列中任务堆积时,可能会导致MergeTree表的数据同步任务出现延迟,后续的写入和变更任务出现延迟,甚至进一步加剧系统负载。

可能原因

  • 高频的小批量写入,导致数据合并速度慢于写入速度。
  • 集群中存在大量的mutation任务。
  • 副本同步任务长时间未执行,集群中出现“ClickHouse副本间不一致”的告警。

处理步骤

检查是否存在高频的小批量写入

  1. 登录FusionInsight Manager页面,选择“运维 > 告警 > 告警”,查看当前告警“定位信息”中的角色名以及确认主机名所在的IP地址。
  2. 以客户端安装用户,登录客户端的节点,执行如下命令:

    cd {客户端安装路径}

    source bigdata_env

    • 集群已启用Kerberos认证(安全模式):

      kinit 组件业务用户

      clickhouse client --host 上报告警的ClickHouseServer实例IP --port 9440 --secure

    • 集群未启用Kerberos认证(普通模式):

      clickhouse client --host 上报告警的ClickHouseServer实例IP --user 用户名 --password --port 9440

  3. 执行以下语句,排查集群中是否存在高频的小批量写入。

    该查询语句用来分析ClickHouse集群中10分钟内是否存在写入数据量小于1000条的insert语句。
    SELECT user, query, count() AS insert_count, avg(written_rows) AS avg_rows_per_insert, min(event_time) AS first_time, max(event_time) AS last_time
    FROM clusterAllReplicas('default_cluster', system.query_log)
    WHERE (event_time >= (now() - toIntervalMinute(10))) AND (type = 'QueryFinish') AND (query_kind = 'Insert')
    GROUP BY user, query
    HAVING (insert_count >= 10) AND (avg_rows_per_insert < 10000)
    ORDER BY insert_count DESC;

  4. 尝试降低或者停止高频的小批量写入业务;停止业务后,等待几分钟查看告警是否恢复。

    • 是,操作结束。
    • 否,执行步骤 5

检查是否存在大量的mutation任务

  1. 执行以下语句,排查集群中是否存在大量的mutation任务。

    select FQDN() as node, database, table, mutation_id, create_time, command, is_done, parts_to_do FROM clusterAllReplicas('default_cluster', system.mutations) WHERE is_done = 0;

  2. 根据步骤 5中查询的结果,确认mutation任务相关的表名,尝试清理这些长时间(超过10分钟)未执行的mutation任务。

    KILL MUTATION WHERE database = '库名' AND table = '表名';

    或者:

    KILL MUTATION WHERE database = '库名' AND table = '表名' AND mutation_id = 'mutation_id';

  3. 清理mutation任务后,等待一段时间,查看告警是否恢复。

    • 是,操作结束。
    • 否,执行步骤 8

检查是否存在“ALM-45440ClickHouse副本间不一致”告警

  1. 查看集群告警中是否存在“ALM-45440ClickHouse副本间不一致”的告警。

  2. 参考“ALM-45440ClickHouse副本间不一致”告警帮助指导处理该告警。处理完成后,在告警列表中查看“ALM-45457 ClickHouse的副本队列中存在任务堆积”告警是否清除。

    • 是,操作结束。
    • 否,执行步骤 10

收集故障信息

  1. 在FusionInsight Manager界面,选择“运维 > 日志 > 下载”。
  2. 在“服务”中勾选待操作集群的“ClickHouse”。
  3. 在“主机”中选择异常的主机,单击“确定”。
  4. 单击右上角的时间编辑按钮,设置日志收集的“开始时间”和“结束时间”分别为告警产生时间的前后1小时,单击“下载”。
  5. 请联系运维人员,并发送已收集的故障日志信息。

告警清除

此告警修复后,系统会自动清除此告警,无需手工清除。

参考信息

不涉及。

相关文档