linux文件打开过多的问题 too many openfiles
2018-01-16 11:22
471 查看
将scala项目打包到linux上部署运行的时间,遇到了服务启动没多长时间就停止的问题,后来查看log发现问题是 Too many openfiles ,一查发现,全是清一色的答案,如http://blog.csdn.net/fdipzone/article/details/34588803的答案,但这并不能从根本上解决问题,只是饮鸩止渴。
后来自己分析代码,检查log,发现一个客户端的配置文件反复被加载,用lsof -p <你服务pid>(pid 通过ps -ef|grep <部署jar>)命令查看所有打开的文件,发现配置文件被反复加载多次,后来直接将配置文件的参数写在了代码中,解决了这个问题。
当然,还有后续,解决问题之后不久,文件数再次达到最大上线,再次用lsof -p <pid>查看所有的文件打开进程,发现
java 18660 root 72r FIFO 0,8 0t0 11797288 pipe
java 18660 root 73w FIFO 0,8 0t0 11797288 pipe
java 18660 root 74u a_inode 0,9 0 5832 [eventpoll]
这三个出现的次数最多,最大文件数上线是4096,几乎3900多个都是这两个,仔细研读代码,发现,自己代码中有个查询的客户端,每次客户端查询报错的时候,都是直接跳出,不会关闭客户端,从而导致pipe过多,后来,加了try catch 在finally中加上shutdown保证每次查询不管正确与否都能关闭,最后解决了这个问题
too many files这个问题前前后后困扰了我两个星期,到此,终于圆满解决
后来自己分析代码,检查log,发现一个客户端的配置文件反复被加载,用lsof -p <你服务pid>(pid 通过ps -ef|grep <部署jar>)命令查看所有打开的文件,发现配置文件被反复加载多次,后来直接将配置文件的参数写在了代码中,解决了这个问题。
当然,还有后续,解决问题之后不久,文件数再次达到最大上线,再次用lsof -p <pid>查看所有的文件打开进程,发现
java 18660 root 72r FIFO 0,8 0t0 11797288 pipe
java 18660 root 73w FIFO 0,8 0t0 11797288 pipe
java 18660 root 74u a_inode 0,9 0 5832 [eventpoll]
这三个出现的次数最多,最大文件数上线是4096,几乎3900多个都是这两个,仔细研读代码,发现,自己代码中有个查询的客户端,每次客户端查询报错的时候,都是直接跳出,不会关闭客户端,从而导致pipe过多,后来,加了try catch 在finally中加上shutdown保证每次查询不管正确与否都能关闭,最后解决了这个问题
too many files这个问题前前后后困扰了我两个星期,到此,终于圆满解决
相关文章推荐
- 遇到问题----linux-----linux 打开文件数 too many open files 解决方法
- 遇到问题----linux-----linux 打开文件数 too many open files 解决方法
- Linux 文件打开过多 (Too many open files)
- Linux进程打开文件数太多(too many open files)的问题
- linux 打开文件数 too many open files 解决方法
- 在Linux中打开了太多文件(Too many open files)的解决方法
- RHEL修改最大文件打开数,关于epoll socket Too many open files问题的解决
- linux 打开文件数 too many open files解决方法
- linux 打开文件数 too many open files 解决方法
- too many open files(打开的文件过多)解决方法
- linux 打开文件数 too many open files 解决方法
- 在Linux中打开了太多文件(Too many open files)的解决方法
- linux 打开文件数 too many open files 解决方法
- Tomcat启动时报打开的文件过多(Too many open files)
- 在Linux中打开了太多文件(Too many open files)的三种解决方法
- linux 打开文件数 too many open files 解决方法
- linux 打开文件数 too many open files 解决方法
- linux报文件数打开过多too many open files
- linux 打开文件数 too many open files 解决方法
- 在Linux中打开了太多文件(Too many open files)的解决方法