ALM-45456 ClickHouse的分布式DDL任务长时间未执行完成
本章节仅适用于MRS 3.6.0-LTS及之后版本。
告警解释
系统每五分钟检测一次ClickHouse服务每个节点上是否存在执行时间超过默认阈值(600秒)的分布式DDL任务,如果检测到存在这样的任务,则系统产生告警。分布式DDL任务执行时间长的阈值通过ClickHouse服务配置参数“slow_ddl_cost_time”查看和调整。
当系统检测到分布式DDL队列中不存在超过阈值的任务时,告警自动清除。
告警属性
|
告警ID |
告警级别 |
告警类型 |
业务类型 |
是否可自动清除 |
|---|---|---|---|---|
|
45456 |
重要 |
业务质量告警 |
ClickHouse |
是 |
告警参数
|
类别 |
参数名称 |
参数含义 |
|---|---|---|
|
定位信息 |
来源 |
产生告警的集群或系统名称。 |
|
服务名 |
产生告警的服务名称。 |
|
|
角色名 |
产生告警的角色名称。 |
|
|
主机名 |
产生告警的主机名。 |
对系统的影响
当ClickHouse服务出现长时间未执行完成的分布式DDL任务时,后续的DDL任务可能会被阻塞,导致无法及时在集群内同步元数据变更。
可能原因
- ClickHouseServer实例故障。
- 存在mutation类型的任务堆积。
处理步骤
检查ClickHouseServer实例是否故障
- 登录FusionInsight Manager页面,选择“运维 > 告警 > 告警”,查看当前告警“定位信息”中的角色名以及确认主机名所在的IP地址。
- 选择“集群 > 服务 > ClickHouse > 实例”,查看上报告警IP地址对应的ClickHouse实例是否故障。
- 等待几分钟查看告警是否恢复。
- 是,操作结束。
- 否,执行步骤 4。
检查是否存在mutation类型的任务堆积
- 以客户端安装用户,登录客户端的节点,执行如下命令:
cd {客户端安装路径}
source bigdata_env
- 执行以下语句,查看system.mutations中的任务类型,判断是否有长时间(超过10分钟)未执行的变更任务:
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; - 根据步骤 5中查询的结果,确认mutation任务相关的表名,尝试清理这些长时间未执行的mutation任务
KILL MUTATION WHERE database = '库名' AND table = '表名';
或者 :
KILL MUTATION WHERE database = '库名' AND table = '表名' AND mutation_id = 'mutation_id';
alter table ... update/delete类型的任务属于mutation任务,对系统资源有大量的消耗,严重影响集群性能,应尽量避免频繁使用。
- 清理mutation任务后,等待一段时间,查看告警是否恢复。
- 是,操作结束。
- 否,执行步骤 8。
收集故障信息
告警清除
此告警修复后,系统会自动清除此告警,无需手工清除。
参考信息
不涉及。