Zookeeper:fsync超时导致实例异常

一、问题描述

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

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

 

二、排查过程

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

          

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

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

       

               


三、根因分析

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

四、解决方法

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

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

posted @ 2019-02-20 18:19  蘇氏加多寶  阅读(2112)  评论(0编辑  收藏  举报