您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

使用lsof对“打开太多文件”进行故障排除

使用lsof对“打开太多文件”进行故障排除

您没有关闭所有流。在读取或写入模式下,有许多打开的文件描述符正在写入未命名的管道。最常见的情况是人们使用Runtime.getRuntime.exec()然后继续保持与流程关联的流打开。您可以使用commons IO utils库关闭它们,也可以自己关闭它们

    try
    {
        p = Runtime.getRuntime().exec("something");
    }
    finally
    {
        if (p != null)
        {
            IoUtils.closeQuietly(p.getOutputStream());
            IoUtils.closeQuietly(p.getInputStream());
            IoUtils.closeQuietly(p.getErrorStream());
        }
    }

如果这不是问题,则需要深入研究代码库,确定泄漏的流在何处并将其插入。

其他 2022/1/1 18:33:03 有464人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶