记录一次Clickhouse持续占用CPU超过100%问题分析

Clickhouse版本21.7.5.29,问题现象:长久占用CPU一直在100%以上,如下所示:

使用Hermes智能体连接上服务器分析,结论如下:

1. ClickHouse 错误日志(800MB!)

clickhouse-server.err.log 818 MB ← 当前活跃

err.log.0.gz 43 MB ← 2026-09-20 02:27

err.log.1.gz 43 MB

err.log.2-8.gz 每天 40+ MB

err.log 有 800MB + 9 个 40MB+ 历史文件 = 每天产生 ~50MB error 日志!

2. 重复错误 - Mutation 卡住

复制代码
Cannot convert NULL value to non-Nullable type:
FUNCTION CAST(sourceKey :: 7, 'String' :: 9) -> CAST(sourceKey, 'String') String : 8
(while reading from part /var/lib/clickhouse/store/...)
DB::MergeTreeDataMergerMutator::mutateSomePartColumns
DB::StorageMergeTree::mutateSelectedPart

这是 ALTER ... DELETE/UPDATE mutation 操作 → 持续失败 → 持续重试 → 死循环!

3. 后台 thread top 1 = BgSchPool (Schedule Pool)

复制代码
98798479 CPU ticks  tid=24346  cmd=BgSchPool/D

BgSchPool = ClickHouse 后台调度池,专门跑 mutation / merge / 复制。它持续在跑,但因为 mutation 一直失败,不断重试同一个失败任务。

4. stack trace 显示 mutation 卡在 part /var/lib/clickhouse/store/0e7/...

某个表的某个 part 数据有 NULL 字段 --- 但表 schema 不允许 NULL → mutation 100% 失败 → 重试 → 死循环

可选的修复方案(按风险递增)

方案 A: 看 mutation queue(最低风险)

复制代码
SELECT * FROM system.mutations WHERE is_done = 0;

智能体推荐了四种方案,我选择了A方案,执行结果如下:

确实有很多。

让智能体自己修复,捣鼓了半天,没有修复成功,但是给出了建议,

发现 2022 年的坏 part 反复重试 → 物理删除它:

复制代码
ALTER TABLE xx.xx_info_old DROP PARTITION 202212;

执行删除了,CPU负载降下来了,然后清理了MUTATION文件:

复制代码
KILL MUTATION WHERE mutation_id = 'xxx';

(第一见这种直接KILL的SQL语句)

相关推荐
承渊政道2 天前
飞牛NAS部署Hermes AI Agent:接入DeepSeek、微信与公网访问完整教程
人工智能·微信·nas·deepseek·hermes
pjj198543 天前
ClickHouse 与 Doris 数据库技术梳理:看懂分析型数据库
数据库·clickhouse
SelectDB技术团队3 天前
ClickHouse 支持存算分离吗?Doris 社区版原生存算分离怎么落地
数据库·clickhouse·云原生·开源·apache doris·技术选型·存算分层
SelectDB技术团队4 天前
ClickHouse SQL 好学吗?从 MySQL 迁移 Doris 的完整兼容验证
人工智能·sql·mysql·clickhouse·开源·apache doris·增量计算
喵了几个咪5 天前
GoWind UBA 拆解:把 Doris UNIQUE KEY 翻译成 ClickHouse——读数正确性对齐实录
开发语言·后端·clickhouse·微服务·golang·gowind
爱吃火鸡面呀5 天前
MySQL、ClickHouse、Doris、Hive、Spark SQL、Flink SQL 选型对比:优点、缺点与面试话术
hive·mysql·clickhouse
SelectDB技术团队8 天前
SelectDB 架构演进与 ClickHouse 迁移指南
大数据·数据库·clickhouse·云原生·架构·数据分析·apache doris
ClickHouseDB9 天前
使用 ClickHouse 与 Massive 构建实时市场数据应用
clickhouse
秉寒-CHO9 天前
从 ClickHouse 到 StarRocks:我在真实业务中怎么选明细、聚合、主键模型
大数据·clickhouse
IT界的老黄牛10 天前
ClickHouse 运维 SQL 速查:system 表查跑批、内存、合并与磁盘一篇通
大数据·clickhouse·磁盘占用·命令速查·运维排查·system表