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副本间不一致”的告警。
处理步骤
检查是否存在高频的小批量写入
- 登录FusionInsight Manager页面,选择“运维 > 告警 > 告警”,查看当前告警“定位信息”中的角色名以及确认主机名所在的IP地址。
- 以客户端安装用户,登录客户端的节点,执行如下命令:
cd {客户端安装路径}
source bigdata_env
- 执行以下语句,排查集群中是否存在高频的小批量写入。
该查询语句用来分析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; - 尝试降低或者停止高频的小批量写入业务;停止业务后,等待几分钟查看告警是否恢复。
- 是,操作结束。
- 否,执行步骤 5。
检查是否存在大量的mutation任务
- 执行以下语句,排查集群中是否存在大量的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; - 根据步骤 5中查询的结果,确认mutation任务相关的表名,尝试清理这些长时间(超过10分钟)未执行的mutation任务。
KILL MUTATION WHERE database = '库名' AND table = '表名';
或者:
KILL MUTATION WHERE database = '库名' AND table = '表名' AND mutation_id = 'mutation_id';
- 清理mutation任务后,等待一段时间,查看告警是否恢复。
- 是,操作结束。
- 否,执行步骤 8。
检查是否存在“ALM-45440ClickHouse副本间不一致”告警
- 查看集群告警中是否存在“ALM-45440ClickHouse副本间不一致”的告警。
- 参考“ALM-45440ClickHouse副本间不一致”告警帮助指导处理该告警。处理完成后,在告警列表中查看“ALM-45457 ClickHouse的副本队列中存在任务堆积”告警是否清除。
- 是,操作结束。
- 否,执行步骤 10。
收集故障信息
告警清除
此告警修复后,系统会自动清除此告警,无需手工清除。
参考信息
不涉及。