clickhouse-too-many-parts

ClickHouse Too many parts 的定位与修复

现象

写入报 Too many parts、Too many parts to merge,插入变慢或失败,查询延迟升高。常见于高频小批量写入、分区过多或 merge 跟不上。

快速定位

clickhouse-client -q 'SELECT database, table, count() AS parts FROM system.parts WHERE active GROUP BY database, table ORDER BY parts DESC LIMIT 10'
clickhouse-client -q 'SELECT * FROM system.merges'
clickhouse-client -q 'SELECT * FROM system.mutations WHERE is_done = 0'
clickhouse-client -q 'SELECT * FROM system.replicas'
df -h
tail -100 /var/log/clickhouse-server/clickhouse-server.err.log

常见根因

  1. 每次插入行数太少,产生大量小 part。
  2. 分区粒度过细(如按秒/按用户分区)。
  3. merge 速度受磁盘/CPU 限制。
  4. mutation 堆积或副本同步慢。
  5. parts_to_throw_insert 阈值过低。

修复

相关命令