【发布时间】:2017-07-19 08:16:49
【问题描述】:
我的问题是监控 java 中打开的文件句柄,并且独立于操作系统类型(Linux、Windows 等)
My Application 是一个基于 web 的服务器应用程序,使用 tomcat 和 Java8 运行。
对于可能的解决方案,仅考虑 Java 语言本身以及 Guava 和 Apache Commons,因为我的公司不允许使用任何其他语言第三方库。
关于如何做到这一点的任何建议?我已经考虑过继承 InputStream 并在其 open() 和 close() 方法中注入一些东西,但这并不是我认为的“好”解决方案......
非常感谢您的帮助!
【问题讨论】:
-
您对打开的文件描述符计数感兴趣吗?在计数的情况下,您可以使用 java.lang.management.ManagementFactory.getOperatingSystemMXBean().getOpenFileDescriptorCount()。够你吃吗?
-
好吧,我已经尝试过了,但是编译器抱怨
getOpenFileDescriptorCount()找不到。我在其他地方找到了适用于 Linux 的解决方案,他们将getOperatingSystemMXBean()转换为 UnixOSMXBean,但对于其他操作系统没有等价物。不过谢谢你的回复
标签: java io inputstream monitoring filehandle