zeppelin-case-one

最近频繁发现 zeppelin刷新页面无法展示页面,从前端看是websocket一直hold。


现场

2016-12-09 下午2点半左右重现。

  • 重启zeppelin的时候发现 NIO Exception:too many file 问题提示,但是还是能够正常使用zeppelin。

  • 在系统中执行命令有如下提示:

    zeppelin-case-1-1.png


排查过程

  1. 猜测是zeppelin相关进程开启文件过多,zeppelin-server,zeppelin-interpriter对应的进程hold的文件数量如下:

    zeppelin-case-1-2.png

    zeppelin-case-1-3.png

  2. 猜测是操作系统层面问题,找到系统日志如下:

    zeppelin-case-1-4.png

  3. 经@万两 回忆 VFS 跟zeppelin的配置有关,zeppelin.notebook.storage 使用的类和VFS有关,默认类如下:

    zeppelin-case-1-5.png

    然后之前定制过一个这个repo类,自动进行commit notebook。

  4. 经@金砖猜测git文件太多。然后查看了.git,果然,objects文件夹有500+M。

  5. 定位完成,回滚到默认配置,删除.git文件夹。


总结,衍生

案例结束了。那么衍生一下:

查看本机当前用户的具柄数量用: ulimit -u 为:257395
查看本机最大文件数量:cat /proc/sys/fs/file-max 为:209708

具柄和 最大文件数量怎么不匹配呢?

据资料表明: file-max是系统所有进程总和能够有的最大的文件数量;而ulimit -u 是对单个用户限制的最大文件数量。

所以这个系统的这两个参数配置也是有问题的。