我是靠谱客的博主 文艺金针菇,最近开发中收集的这篇文章主要介绍客户端调用 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 文件数打开过多问题的解决方法的全部内容,希望文章能够帮你解决客户端调用 Axis2 接口,导致 Linux 文件数打开过多问题的解决方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部