“位卑未敢忘忧国,事定犹须待阖棺”


这是一次生产事故。更新了代码之后,第二天一早便有客户反馈服务器访问不了。
我从梦中惊醒,开始检查问题。

在查看了日志之后,发现了下面的错误:

java.io.IOException: Too many open files

我在想,是什么文件被打开多次,导致服务器都挂了呢?一直没有头绪,随后百度了一下,从too many open files(打开的文件过多)解决方法这篇文章中找出了问题,原来是我的过滤器在读取配置文件。
问题分析
因为项目设置ip过滤,几台服务器中好几个节点的ip和端口都要写到过滤器中。于是,我把这些ip写到了一个配置文件中,然后再过滤的方法doFilter()中来读取该配置文件的ip。所以,问题来了,只要项目任何的一个路径被访问,都要进入过滤器,然后读取配置文件判断ip,当用户和操作多的时候,配置文件就被打开的次数太多了。于是,就出现了上面的问题。

就是这句代码惹的祸。

问题解决
既然这句代码写在doFilter中会导致文件被读取太多次从而引起错误,那么,可以把这个文件的读取写init方法中。这样,只是在项目启动的时候被读取一次,然后定义一个全局变量存起来就OK了。这样就可以在doFilter中使用全局变量来拿到需要过滤的ip了。

引以为戒!

记一次too many open files 异常相关推荐

  1. 记一次线程池任务执行异常

    记一次线程池任务执行异常 参考文章: (1)记一次线程池任务执行异常 (2)https://www.cnblogs.com/hapjin/p/10012435.html (3)https://www. ...

  2. 记一次 .NET 某教育系统 异常崩溃分析

    一:背景 1. 讲故事 这篇文章起源于 搬砖队大佬 的精彩文章 WinDBg定位asp.net mvc项目异常崩溃源码位置 ,写的非常好,不过美中不足的是通览全文之后,总觉得有那么一点不过瘾,就是没有 ...

  3. android studio unable to save settings,记一些:Android Studio 安装-运行 异常及解决

    事故时间:2018.9.7 - 2019.2.11 事故版本:3.1 - 3.3 事故现场 安装 1. Proxy - sdk 运行 2. Proxy - Settings 3. Http/1.1 4 ...

  4. 记一次mariadb 安装 出现scok异常

    当安装数据库Maria时,使用yum install mariadb*. systemctl start mariadb 会提示 /var/lib/mysql 目录已经初始化了, 但是当后面用到的时候 ...

  5. 项目异常Too many open files

    记一次Too many open files 错误日志 现象 解决过程 解决过程A 解决过程B 错误日志 现象 错误出现后,系统外部无法正常访问,系统内部服务未发生特殊其他异常.内存占用过高为正常的4 ...

  6. 妖神记服务器维护中,妖神记手游进不去 进不去网络异常怎么办?[多图]

    类型:角色扮演 大小:901.88MB 评分:10 平台: 妖神记手游最近有不少玩家反映进不去游戏,还有时候会碰到网络异常,这时候要怎么解决呢?下面是友情MT为大家带来的妖神记手游进不去网络异常解决方 ...

  7. Too many open files

    环境: 192.168.128.111(ha1.haproxy.org) -> CentOS 6.3 64bit siege 2.78 192.168.128.10(n1.web.org) -& ...

  8. linux 打开文件错误 too many open files 解决 ulimit 简介

    Too many open files是Java常见的异常,通常是由于系统配置不当或程序打开过多文件导致.这个问题常常又与ulimit的使用相关.关于ulimit的用法有不少坑,本文将遇到的坑予以梳理 ...

  9. android Too many open files 解决

    遍历某一文件夹,当文件数过多时,或出现Too many open files异常,有问题的代码 /*** 获取指定文件大小** @param file* @return* @throws Except ...

最新文章

  1. 快速排序(Quick_Sort)
  2. 机房内综合布线电缆的紧密捆绑有哪些问题?
  3. 2019牛客多校第四场 B xor (线性基求交)
  4. eclipse占用内存过大_idea被评最好用java开发工具,为什么用eclipse的人更多?
  5. 【 Grey Hack 】综合工具 shellOs
  6. idea 不打开文件提示错误_IDEA无法正常启动(打不开报错)
  7. [C++] - 闭包(closure)
  8. NUC1399 Sum It Up【DFS】
  9. 数据治理是开展数据分析的前提
  10. 浪潮服务器怎么获取cpu信息,浪潮获取cpu、内存、硬盘等信息(redfish协议+restfull协议)...
  11. DRG/DIP改革激活医疗数据智能400亿新增市场| 爱分析洞见
  12. 2021年烷基化工艺找解析及烷基化工艺考试试卷
  13. 3w最简单led灯电路图_怎么选择自己合适的LED驱动IC?(十大LED驱动IC典型应用电路图)...
  14. Mining Hero於ETHDenver峰會提交專案,整合IPFS應用場景
  15. [SYZOJ279]滑♂稽♂树
  16. mumu按键精灵_魂器学院,新手做的按键精灵脚本,基本每天的日常任务可做,mumu模拟器的...
  17. artemis mq配置开机启动 (centos7)(artemis Init Script)
  18. substr()函数
  19. 北京师范大学计算机研究生毕业去向,北京师范大学的计算机科研实力怎么样啊?我想考北..._考研_帮考网...
  20. Unity3d使用鼠标点击控制人物走动无效的问题

热门文章

  1. 百度又一神器发布!网友:牛逼炸了...
  2. MySQL (4) 第一范式 第二范式 第三范式 BC范式
  3. FFmpeg命令行解析
  4. 关于Python虚拟环境与包管理你应该知道的事
  5. 微信网页图片预览问题
  6. minMaxLoc用法
  7. modprobe XXX not found 解决与Depmod命令; insmod/modprobe的区别
  8. 关于nn.ReLU(inplace=True)和nn.ReLU(inplace=False)的区别
  9. JAVA基础总结----JAVA面试必备
  10. [传感器][算法][python]根据IMU九轴加速度传感器数据序列,判断是否有触碰或翻转