You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Clickhouse环境下ZooKeeper Leader CPU占用过高排查求助

ZooKeeper Leader节点CPU占用过高排查方向(结合ClickHouse集群场景)

一、ZooKeeper自身状态与日志排查

  • 查看Leader节点的ZooKeeper日志(默认路径/var/log/zookeeper/或自定义配置路径),重点排查WARN、ERROR级别的信息,比如频繁的会话超时、节点创建/删除风暴、数据同步异常等
  • 使用ZooKeeper自带工具确认集群状态:
    • 执行zkServer.sh status验证节点角色(Leader/Follower)
    • 通过zkCli.sh连接集群后执行stat命令,关注OutstandingRequests(未处理请求数)、AvgLatency(平均请求延迟)指标,若数值持续偏高,说明Leader请求处理压力过大
  • 检查ZooKeeper快照与事务日志目录的磁盘IO情况,用iostat -x 1 5或vmstat查看磁盘读写利用率,磁盘IO瓶颈会导致Leader处理请求时CPU等待占比升高

二、ClickHouse与ZooKeeper交互排查

  • 查询ClickHouse系统表system.zookeeper,执行SELECT * FROM system.zookeeper WHERE path='/clickhouse'查看节点结构,确认是否存在大量临时节点、频繁更新的元数据节点(比如分布式表分片状态、副本同步节点)
  • 检查ClickHouse服务日志(默认路径/var/log/clickhouse-server/),搜索zookeeper相关条目,排查是否存在重复的节点创建、删除、watch操作——部分分布式表配置不当会触发这类高频请求
  • 核对ClickHouse的ZooKeeper连接配置:
    • 检查zookeeper.session_timeout_ms是否过小,导致客户端频繁重连
    • 确认zookeeper.connection_pool_size是否设置过大,造成Leader节点连接数过载

三、ZooKeeper配置与系统资源瓶颈排查

  • 检查Leader节点的JVM配置(zoo.cfg中的jvmflags参数),重点看堆内存-Xmx是否不足,导致频繁GC。可执行jstat -gc <zk_pid> 1000 10查看GC频率与耗时,FullGC频繁会大幅占用CPU资源
  • 查看zoo.cfg中的maxClientCnxns配置,确认是否允许过多客户端连接,导致Leader需要处理大量连接请求与心跳包
  • 用top或htop确认CPU占用主体是ZooKeeper的Java进程,再通过netstat -anp | grep <zk_port>查看网络连接状态,排查是否存在大量TIME_WAIT或ESTABLISHED连接

四、集群异常场景排查

  • 检查Follower节点状态,执行zkServer.sh status确认Follower的SyncConnected状态是否稳定,若Follower频繁断开重连,Leader会持续进行数据重同步,消耗大量CPU
  • 排查是否有非ClickHouse客户端连接ZooKeeper集群,通过zkCli.sh执行ls /查看根节点下的非ClickHouse路径,其他分布式系统(如Kafka、HBase)的高频操作也可能导致Leader CPU升高

内容的提问来源于stack exchange,提问作者prasanth boggarapu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 17:22:54