java.net.SocketException: 打开的文件过多 (Socket creation failed)
一、分析定位
1. 日志分析
2. 导致的原因
报此错误是由于系统内核对进程打开文件个数的限制,默认为1024
3. 系统纬度查看
ulimit -a
1
二、解决方案
操作声明:修改配置使用root用户操作,应用启停使用应用用户操作
2.1. 编辑limits.conf
vim /etc/security/limits.conf
1
添加以下配置
* soft nofile 65535
* hard nofile 65535
1
2
2.2. 编辑profile
编辑profile配置文件
vim /etc/profile
1
在文档最后添加
ulimit -SHn 65535
1
vim /etc/security/limits.conf
1
2.3. 编辑rc.local
在/etc/rc.local 后增加一行
vim /etc/rc.local
1
ulimit -SHn 65535
1
2.4. 刷新环境变量
source /etc/profile
1
2.5. 重启应用
将应用进程停止,重新启动
2.6. 当前系统维度验证
ulimit -a
1
2.7. 当前应用进程验证
查看当前应用进程号
ps-ef|grep java
1
当前进程打开文件数量
cat /proc/171520/limits
1
2.8. 效果图
注意事项
1.应用一定要重启
2.系统维度和当前进程都需要验证
备注:系统维度配置生效,不代表当前进程维度配置生效
浙公网安备 33010602011771号