一、问题描述

       2019-02-19 08:44左右,实时计算服务重启,报错显示找不到zk集群的leader节点,同时ZooKeeper集群有告警显示连接超时:

  指标[连接耗时(ms)=18221]符合告警规则[连接耗时(ms)>=3000]

 

二、排查过程

  1. 查看当前集群状态,集群状态正常,查看报“连接超时”的zk节点日志,发现有shutdown情况,表明作为follower的zk server在一段时间内会停止工作;

          Zookeeper:fsync超时导致实例异常

     2. 继续查看zk运行日志,发现有大量的fsync的告警,说明ZooKeeper将数据存入磁盘慢,导致ZooKeeper节点间心跳超时,进而ZooKeeper实例异常;
       Zookeeper:fsync超时导致实例异常

    3.  查看磁盘划分情况和zk data路径,发现zk数据盘没有单独划分,而且机器是老机器,zk数据量增大,磁盘IO性能跟不上;

       Zookeeper:fsync超时导致实例异常

       Zookeeper:fsync超时导致实例异常        


三、根因分析

  1. “FOLLOWER”在跟“LEADER”同步时,fsync操作时间过长,导致超时。

四、解决方法

  1. 根本解决: 挂载新的磁盘到zk节点机器上,提高磁盘IO性能,根本上解决fsync超时问题;

         2. 临时规避: 增大zk中tickTime、syncLimit 配置参数,需要重启节点,可以一台一台操作。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-07-18
  • 2021-04-30
  • 2021-11-11
  • 2021-12-08
  • 2021-07-25
  • 2022-02-07
猜你喜欢
  • 2021-12-23
  • 2022-02-15
  • 2022-02-24
  • 2022-02-01
  • 2022-01-06
  • 2021-11-04
  • 2022-02-23
相关资源
相似解决方案