我是靠谱客的博主 文艺金针菇,这篇文章主要介绍客户端调用 Axis2 接口,导致 Linux 文件数打开过多问题的解决方法,现在分享给大家,希望可以做个参考。

生产系统最近不稳定, 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 文件数打开过多问题的解决方法的全部内容,更多相关客户端调用内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(81)

评论列表共有 0 条评论

立即
投稿
返回
顶部