概述
生产系统最近不稳定, linux 经常爆出打开文件数过多的问题。
Linux 有文件句柄限制,默认一般为 1024 。之前生产环境调整过一次,改大了。这次又出现类似问题,怀疑是应用程序存在问题。
1 查看进程打开文件数最大限制
为了保证生产环境能够继续提供服务,运维把进程所能打开的最大文件数为改为 8192,同时通过设置了监控,当最大文件数超过 3000 时,进行短信预警。
通过 Linux 的 ulimit 命令,查看目前进程所能打开的最大文件数。而当时的应用程序实际打开的文件数为 3000 多。
2 分析 Java Heap Dump 文件
让运维人员 dump 出当时的 Java Heap Dump 文件,进行深入分析。
在 Eclipse Memory Analyzer 的 Histogram 中,按照 Objects 数量进行排序,发现数量在 3000 左右的对象,大都与 axis2 相关:
右键点击 org.apache.axis2.context.MessageContext,在弹出框中选择“List objects” -> with outgoing references,打开外部引用了这个类实例的列表:
最后
以上就是文艺金针菇为你收集整理的客户端调用 Axis2 接口,导致 Linux 文件数打开过多问题的解决方法的全部内容,希望文章能够帮你解决客户端调用 Axis2 接口,导致 Linux 文件数打开过多问题的解决方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复