Error-NioEndpoint-打开文件过多

简介: error

1. 场景:

使用javacv将rtsp流转为flv,服务跑几天后报错。
image.png

2022-01-20 09:32:41.214 [http-nio-9145-Acceptor-0] ERROR org.apache.tomcat.util.net.NioEndpoint - Socket accept failed
java.io.IOException: 打开的文件过多
        at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method) ~[?:1.8.0_11]
        at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:241) ~[?:1.8.0_11]
        at org.apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:482) ~[tomcat-embed-core-8.5.34.jar!/:8.5.34]
        at java.lang.Thread.run(Thread.java:745) [?:1.8.0_11]

2.定位问题:

  • 先查出服务进程
ps -ef |grep converter-flv-2.0.5.RELEASE.jar

在这里插入图片描述

  • 使用命令lsof查出当前服务打开文件数

在这里插入图片描述

 lsof -p 2194 |wc -l

如果找不到命令则安装:yum install lsof

  • 查看用户允许打开的最大文件数

在这里插入图片描述

ulimit -a 发现open files 为1024

往往服务打开的文件数大于该值就会报错。

3. 解决方案

执行:ulimit -n 4096
将open files (-n) 1024 设置成open files (-n) 4096

目录
相关文章
|
8月前
|
Windows
已解决Win11报错 OSError: [WinError 1455] 页面文件太小,无法完成操作。
Win11报错 OSError: [WinError 1455] 页面文件太小,无法完成操作。 Error loading "D:\aaaa\envs\gs\lib\site-packages\torch\lib\caffe2_detectron_ops_gpu.dll" or one of its dependencies.
2070 0
已解决Win11报错 OSError: [WinError 1455] 页面文件太小,无法完成操作。
|
3月前
|
容器
这个错误是因为在读取文件时,管道已经结束
【1月更文挑战第14天】【1月更文挑战第67篇】这个错误是因为在读取文件时,管道已经结束
44 4
|
8月前
|
Python
|
9月前
已解决yolov5-7.0报错OSError: [WinError 1455] 页面文件太小,无法完成操作。
已解决使用yolov5-7.0版本进行实例分割训练时报错OSError: [WinError 1455] 页面太小,无法完成操作。
500 0
PHP使用 finally 块,里面必须写 fclose($file);吗?如果不写,就不能关闭资源吗?
PHP使用 finally 块,里面必须写 fclose($file);吗?如果不写,就不能关闭资源吗?
|
计算机视觉 Windows
【解决方案】OSError: [WinError 1455] 页面文件太小,无法完成操作
今天在windows系统下调试yolov5,遇到的一个bug,特此记录,并附上解决方案,请往下看。
【解决方案】OSError: [WinError 1455] 页面文件太小,无法完成操作
|
存储 API C++
dump系列(2)C++程序异常或内存错误,导致闪退的解决办法:分析dump文件
dump系列(2)C++程序异常或内存错误,导致闪退的解决办法:分析dump文件
1670 0
|
网络协议 安全 Linux
解决 Swoole 服务报错 Too many open files 文件句柄超出系统限制
如果在 Swoole 的日志中遇到了 Too many open files 这种报错,不要慌,在开发 TCP 网络应用的过程中,经常会遇到Too many open files这个问题。 这说明你的程序以达到 Linux 所允许的打开文件数上限。需要修改 ulimit 设置
266 0
|
安全 网络协议 Linux
修改用户进程可打开文件数限制(转)
1、修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量 的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。
1651 0
|
C语言
【C 语言】文件操作 ( 配置文件读写 | 写出或更新配置文件 | 函数形参设置 | 确保打开文件成功 | 统计文件大小 )
【C 语言】文件操作 ( 配置文件读写 | 写出或更新配置文件 | 函数形参设置 | 确保打开文件成功 | 统计文件大小 )
133 0